Multi-mode point-of-sale device

ABSTRACT

In an embodiment, methods for managing a point of sale (POS) device are provided. A web server may be configured to grant access of a display of the POS device to the user device. The POS device may display a graphical user interface that includes a menu for controlling the display of the POS device. These steps may be in response to a first request. In response to a second request, the POS device may transmit a push notification to the user device. The push notification includes a second menu including a command for controlling an operation of the POS device.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Nonprovisional patentapplication Ser. No. 16/895,728 (Atty. Docket No. 3450.0020002), filedJun. 8, 2020, titled “MULTI-MODE POINT-OF-SALE DEVICE,” which is acontinuation of U.S. Nonprovisional patent application Ser. No.15/606,918 (Atty. Docket No. 3450.0020001), filed May 26, 2017, titled“MULTI-MODE POINT-OF-SALE DEVICE” and issued as U.S. Pat. No.10,679,254, which is a continuation of U.S. Nonprovisional patentapplication Ser. No. 14/152,643 (Atty. Docket No. 3450.0020000), filedJan. 10, 2014, titled “MULTI-MODE POINT-OF-SALE DEVICE” and issued asU.S. Pat. No. 9,665,861, the contents of which are hereby incorporatedherein by reference in their entirety.

BACKGROUND Background

Point-of-sale devices, such as cash registers, rely on physicallyconnecting several different components to provide sufficientconnectivity and functionality for customer transaction needs. Forexample, in recent years it has become popular to connect variousperipherals to tablet computers to enable point-of-sale transactionswith the tablet computers. This arrangement requires a user to purchasenot only the tablet computer and related software, but also severalperipherals, such as magnetic stripe terminals, barcode scanners,network connectivity, cash drawers, receipt printers, etc., atsignificant additional cost and inconvenience. This arrangement alsorequires the user to configure the tablet computer and/or theperipherals for use with each other, often a time-consuming, frustratingand difficult task, particularly for users without a technicalbackground. Older, more self-contained cash registers did not offer thetypes of functionality, connectivity, software, interface components,etc. necessary in the commercial environment existing today and into thefuture.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are incorporated herein and form a part of thespecification.

FIG. 1 illustrates a block diagram of a cloud-based point-of-salesystem, according to an example embodiment.

FIG. 2A illustrates a front view of a multi-mode point-of-sale device,according to an example embodiment.

FIG. 2B illustrates a rear view of a multi-mode point-of-sale device,according to an example embodiment.

FIG. 3 illustrates internal components of a multi-mode point-of-saledevice, according to an example embodiment.

FIG. 4 illustrates a block diagram of internal components of amulti-mode point-of-sale device, according to an example embodiment.

FIG. 5 illustrates an internal configuration of a closed-drawerdetection mechanism, according to an example embodiment.

FIG. 6 illustrates an internal configuration of a closed-drawerdetection mechanism, according to an example embodiment.

FIG. 7 illustrates different configuration modes of a multi-modepoint-of-sale device, according to an example embodiment.

FIG. 8 illustrates a flowchart illustrating a process for switchingbetween a first interface and a second interface of a multi-modepoint-of-sale device, according to an example embodiment.

FIG. 9 illustrates a flowchart illustrating a process for maintainingtouch performance of a touch screen, according to an example embodiment.

FIG. 10 illustrates a block diagram of a server system, according to anexample embodiment.

FIG. 11 illustrates a diagram of an exemplary system architecture,according to an embodiment.

FIG. 12 illustrates an example functional block diagram of an exemplaryweb server, according to an embodiment.

FIG. 13 illustrates an example functional block diagram of an exemplarypoint of service (POS) device, according to an embodiment.

FIG. 14 illustrates an example functional block diagram of an exemplaryinterface between to peripherals of a POS device, according to anembodiment.

FIG. 15 illustrates an example functional block diagram of an exemplarymobile device, according to an embodiment.

FIG. 16 illustrates a flowchart providing example steps for setting up aPOS device, according to an embodiment.

FIG. 17 illustrates a flowchart providing example steps for managing atransaction from a POS device, according to an embodiment.

FIGS. 18-20 illustrate exemplary screenshots of a POS touch screen,according to an embodiment.

FIG. 21 illustrates an exemplary operation according to an example NFC(near field communication) embodiment.

FIG. 22 illustrates a flowchart providing example steps for adding astore for a merchant, according to an embodiment.

FIG. 23 illustrates a flowchart providing example steps for adding a POSdevice for a merchant, according to an embodiment.

FIG. 24 illustrates a flowchart providing example steps for managinginventory and/or POS device(s), according to an embodiment.

FIG. 25 illustrates an exemplary screenshot of a workstation, accordingto an embodiment.

FIG. 26 illustrates a diagram of an exemplary advertising environment,according to an embodiment.

FIG. 27 illustrates a flowchart providing example steps for providingadvertisements, according to an embodiment.

FIG. 28 illustrates a flowchart providing example steps for managinginventory provided by POS devices, according to an embodiment.

FIGS. 29 and 30 illustrate example relationships of a management moduleand a merchant in POS environments, according to embodiments.

FIG. 31 illustrates a block diagram of a hardened cloud-basedpoint-of-sale device, according to an example embodiment.

FIG. 32 illustrates a flowchart of a process for ordering and using acloud-based point-of-sale device, according to an example embodiment

FIG. 33 illustrates a block diagram of a cloud-based point-of-salesystem with two cloud-based point-of-sale devices, according to anexample embodiment.

FIG. 34 illustrates a block diagram of a cloud-based point-of-salesystem, according to an example embodiment.

FIG. 35 illustrates a flowchart illustrating a process for analyzingdata and performing modifications in a cloud-based point-of-sale systemaccording to an example embodiment

FIG. 36 illustrates an example computer system useful for implementingvarious embodiments.

In the drawings, like reference numbers generally indicate identical orsimilar elements. Additionally, generally, the left-most digit(s) of areference number identifies the drawing in which the reference numberfirst appears.

DETAILED DESCRIPTION

Provided herein are apparatus, system, method, computer program productembodiments, and/or combinations and sub-combinations thereof, forintegrating a plurality of different features into a point-of-sale (POS)device within a greater cloud-based system. In an embodiment, the POSdevice is a single, self-contained device. In an embodiment, the POSdevice is a plug-and-play device. Other features of embodiments of thePOS device are described below.

The following disclosure describes features of the POS device. Section Igenerally describes hardware/structural features associated with the POSdevice. Section II generally describes software features associated withthe POS device. Section III generally security features associated withthe POS device. Section IV generally describes an example computersystem, in which embodiments of portions thereof can be implemented.Section V is a conclusion section.

1. HARDWARE/STRUCTURAL FEATURES

FIG. 1 illustrates an exemplary environment 100 in which a POS devicemay operate within a cloud-based environment, according to an exampleembodiment. Example environment 100 is provided for purposes ofillustration and is not limiting of embodiments of the presentdisclosure.

As shown in FIG. 1 , example environment 100 includes one or more POSdevices 101, a computing device 103, a mobile device 105, a network 107,a back-end server 109, and a transaction server 111. Although only oneof each is shown in the example of FIG. 1 , there may be multiplecomputing devices 103, mobile devices 105, networks 107, back-endservers 109, and/or transaction servers 111.

In an embodiment, the one or more POS devices 101 may be integrated,self-contained registers, as will be discussed in more detail below withrespect to several of the figures. The one or more POS devices 101 maybe located, for example and without limitation, at a merchant premisesof an organization such as a brick-and-mortar establishment, temporarylocation, or online inventory with a physical point-of-sale presence, orany other location where a merchant account may be established with apayment processing company. As referred to herein, for exemplary andexplanation purposes, a “merchant” refers to a user of the POS device101. The merchant can conduct, for example, commercial transactions withone or more customers using the POS device 101. These commercialtransactions, along with other types of transactions using the POSdevice 101, are described in more detail below. As will be appreciatedby those skilled in the relevant art(s), an organization may utilizeonly one POS device 101 or may utilize multiple POS devices 101, basedon the specific needs of the organization. Reference will be made hereinto a single POS device 101 for simplicity of discussion. Details of anexemplary POS device 101 will be discussed in more detail below withrespect to at least FIGS. 2A through 9 . Generally speaking, the POSdevice 101 may be configured to perform product scanning, transactioncompletion, and other commercial point-of-sale tasks, existing now anddeveloped in the future, within a single integrated register device.

In operation, the POS device 101 may connect to the back-end server 109via connections 152 and 154. In an embodiment, the back-end server 109may connect to a network 107 via the connection 152 and the POS device101 may connect to the network 107 via the connection 154. In oneexample, the network 107 may be the Internet. The network 107 mayalternatively be an intranet, such as a local area network (LAN). ThePOS device 101 may communicate with the back-end server 109 using avariety of different communications protocols and wired and/or wirelesscommunication media (e.g., a Wi-Fi connection using Wi-Fi ProtectedAccess II (WPA2) security protocol), as will be appreciated by thoseskilled in the relevant art(s). The POS device 101's system may bepopulated (e.g., provided with data, software, updates, etc.) from theback-end server 109. For example, in an embodiment, the POS device 101receives inventory via the network 107 and connections 152/154 when auser, such as a user of the computing device 103, instructs the back-endserver 109 to populate the POS device 101. Alternatively, the POS device101 may, on its own initiative, periodically query the back-end server109 for inventory updates.

The back-end server 109 may be, for example, a web server or a pluralityof web servers operating in cooperation with each other. In anembodiment, the back-end server 109 may include a database used to storeand enable management of inventory for the organization's premises atwhich the POS device 101 is located. Details with respect to exemplarycomponents of the back-end server 109 will be discussed in more detailbelow with respect to FIG. 10 . In an embodiment, the back-end server109 may manage the inventory for a plurality of different organizations,for example as a plurality of different accounts, one being associatedwith each different organization. As will be appreciated, for eachorganization there may be one or multiple merchant premises associatedwith a single account managed by the back-end server 109.

Inventory may be managed, updated, etc., by the computing device 103and/or the mobile device 105. In an embodiment, the computing device 103may be a personal computing device, such as a desktop computer, a laptopcomputer, a tablet computer, a mobile phone, or a personal digitalassistant, just to name a few examples, or any combination of the above.A user of the computing device 103 may access the back-end server 109via network 107, for example by connecting to the network 107 via theconnection 156 and then to the back-end server 109 via the connection152. The computing device 103 may communicate with the back-end server109 using a variety of different communications protocols and wiredand/or wireless communication media (e.g. a Wi-Fi connection using Wi-FiProtected Access II (WPA2) security protocol) as will be appreciated bythose skilled in the relevant art(s). In an embodiment, the computingdevice 103 may access the back-end server 109 via a web interface, forexample by logging into a website and entering appropriate user/passwordinformation. Management of the inventory may include organizinginventory into categories, adding records for additional inventory,adding or changing images of products in the inventory, updating oradding prices for the inventory, and/or adding or changing informationabout the supplier(s) of the inventory.

Inventory may also be managed, updated, etc., by the mobile device 105.The mobile device 105 may be, for example, a mobile phone, a smartphone,a personal media player, a tablet computer, a laptop computer, orsimilar device that may connect to the network 107 using differenthardware and media, for example Wi-Fi or a cellular network. As will beappreciated by those skilled in the relevant art(s), the functionsdiscussed herein as being performed by the mobile device 105 mayalternatively or additionally be performed by the computing device 103and vice versa because, in embodiments, there may be a functionaloverlap between the two types of devices 103 and 105 (e.g., a computingdevice may also be considered a mobile device, and vice versa).

For example, the mobile device 105 may capture an image of a productthat is or will be included in the inventory which is then added to theinventory managed and/or stored by the back-end server 109. The imagemay reach the back-end server 109 via network 107. As another example,the mobile device 105 may receive sales summaries of transactions thathave occurred at the POS device 101, such as sales and returns processedby the POS device 101. The reports may additionally or alternativelyinclude other types of real-time business statistics. The mobile device105 may also be used to manage employees of the merchant premises, forexample for scheduling and security concerns.

In an embodiment, the POS device 101 may additionally communicate with atransaction server 111 operated by a financial institution fortransaction processing/approval. For example, when a customer enterspayment information, such as credit card information via one or moreinput devices as discussed below, the transaction information may becommunicated to the transaction server 111 for approval or denial via aconnection 160. Connection 160 may be a direct or indirect link via anyone or more wired and/or wireless modes of telecommunication and,although not shown in FIG. 1 , may include the network 107. In anembodiment, the POS device 101 may communicate directly with thetransaction server 111. In alternative embodiments, the POS device 101may communicate indirectly with the transaction server 111 via thenetwork 107 and/or the back-end server 109, for example via wired and/orwireless connection 162. The transaction server 111 may be associatedwith one or more financial institutions.

As shown, FIG. 1 shows an exemplary environment 100 in which the POSdevice 101 may operate within a cloud-based POS system. In anembodiment, the cloud-based POS system is a distributed network ofcomputing devices (e.g., POS device 101, computing device 103, mobiledevice 105 and server 109) used in the execution of commercialtransactions such as, for example, the sale and inventory management ofgoods. In an embodiment, the cloud-based services and integratedhardware of the POS device 101 enable the POS device 101 to be aplug-and-play device—e.g., a user may plug in the POS device 101 using asingle wired and/or wireless plug and begin operation of the POS device101 without requiring any additional external peripherals. In anembodiment, because the POS device 101 contains all needed componentsand does not require any external peripherals, there is little or evenno need for the user to configure the POS device 101 prior to use. Infact, the POS device 101 is operable once it is plugged in and turnedon. Further, in an embodiment, the POS device 101 may be configured toturn on automatically upon plugin. Accordingly, in an embodiment, thePOS device 101 is an integrated, unified device containing within asingle assembly all hardware components needed to perform the operationsdescribed herein, where the POS device 101 is pre-configured such thatuser configuration is not needed for operation of the POS device 101.

FIG. 2A illustrates a front view of a multi-mode POS device, such as thePOS device 101 of FIG. 1 , according to an example embodiment. Forsimplicity of discussion, reference to the multi-mode POS device in thefollowing figures will be with respect to POS device 101 of FIG. 1 ,although it should be understood that a given POS device 101 may includeany subset of features shown in these figures. In the followingdiscussion, a front view is one from the perspective of a primary userthat faces the POS device 101. As one example, the primary user may be astore clerk at a merchant premises of an organization.

POS device 101 may include a primary display, such as a touchscreendisplay 201, a base 203, a cash drawer 205, a receipt printer slot 207,a magnetic stripe reader (MSR) 209, and a camera 217. In an embodiment,the touch screen display 201 may be a projected capacitive touch (PCAP)touch screen display. In a PCAP touch screen display, touches may besensed through a protective layer in front of a display. The touchscreen may have one or multiple layers of conductive material, such ascolumns and rows forming a grid pattern of electrodes. The protectivelayer is located over the layer(s) of conductive material, and may bemade of glass or plastic. Because of this additional layer, PCAP touchscreens may be resistant to impacts, scratches, moisture, heat, cold,and harsh cleaning fluids. The electrodes create a uniform electrostaticfield when voltage is applied, and changes in capacitance are measuredwhen a conductive object is in contact with the touch screen, forexample by touching the protective layer. A PCAP touch screen may be aself-capacitance or a mutual-capacitance touch screen. Self-capacitancetouch screens measure the rows and columns of electrodes, not theirintersections, which results in stronger signals but an inability toreliably interpret touches on different parts of the screen at a time.In mutual-capacitance touch screens, the electrodes are spatiallyseparated in two layers and the intersections of each electrode areuniquely addressable so that multiple simultaneous touches aredetectable and reliably interpreted. These and other features of PCAPdisplays will be apparent to those skilled in the relevant art(s), andembodiments of touch screen display 201 may include any combination ofsuch features.

In an alternative embodiment, the touch screen display 201 may be asurface acoustic wave (SAW) touch screen display. A SAW touch screendisplay may rely upon ultrasonic waves. The ultrasonic waves aretransmitted across a surface of the touch screen, portions of whichwaves are absorbed when an object touches the screen. The position ofthe touch is detected based on how the waves are changed by the touch,for example by measuring signal attenuation of the portion of the wavewhere the touch occurred and calculating when that attenuated portion isdetected. SAW touch screen displays have high transparency because theydo not require electrode layers beneath the surface that can affect thedisplayed image. These and other features of SAW displays will beapparent to those skilled in the relevant art(s), and embodiments of thetouch screen display 201 may include any combination of such features.

As will be appreciated by those skilled in the relevant art(s), PCAP andSAW touch screen displays are just two examples of the touch screendisplay 201 and embodiments of the present disclosure are not limited tothese examples. Instead, the touch screen display 201 may employ anytouch screen technology, existing now or developed in the future.

In an embodiment, the touch screen display 201 may be capable of twotouches with 2 mm accuracy, although embodiments are not limited to thisexample. As will be appreciated by those skilled in the relevant art(s),other types of touchscreens may be utilized to accomplish the inputfunctionality. The touch screen display 201 may have a variety of sizes.In an embodiment, the touch screen display 201 may have a diagonal sizeof 13.3 inches with a 1920×1080 displayed image resolution, althoughother sizes and/or resolutions are possible as well. The display of thetouchscreen display 201 may be any type such as but not limited toliquid crystal display (LCD), organic light emitting diode (OLED)display, electroluminescent display, electrophoretic display (EPD), etc.without departing from the scope of the present disclosure.

The touch screen display 201 is mounted on a display head (shown asmount 219 in FIG. 2B) that enables the touch screen display 201 to pivotbetween two positions, as shown in more detail in FIG. 7 and discussedin the corresponding text below. For example, in a first position, thetouch screen display 201 faces the primary user of the POS device 101(e.g., a merchant) and in a second position the touch screen display 201faces a secondary user, for example a customer at the merchant premisesof the organization. For example, in referring to FIG. 2A, the touchscreen display is in the first position. As will be discussed in moredetail below, the content of the display on the touch screen display 201changes based on a detection of whether the screen is facing the primaryor secondary user (e.g., the merchant or the customer, respectively).

In an embodiment, the camera 217 of FIG. 2A may be located in a bezelarea surrounding the touchscreen display 201, for example below thetouch screen display 201 (when in the first position facing the primaryuser, as shown in FIG. 2A). In an embodiment, the camera 217 may utilizea CMOS sensor. As will be appreciated, when the touch screen display 201is moved to the second position facing the secondary user, the camera217 would then be located above the touch screen display 201 from theperspective of the secondary user. As will be further appreciated bythose skilled in the relevant art(s), the camera 217 may be located atother positions around the touch screen display 201 or elsewhereintegrated with the POS device 101. The camera 217 may be used forscanning 2-D bar codes as well as for security. For example, in anembodiment the POS device 101 may capture an image of the merchant userfacing the touch screen display 201 during login and/or logout of thePOS device 101. This captured image may then be stored and forwarded toa designated recipient for verification and security.

The MSR 209 may also be located along an edge of the touch screendisplay 201. For example, in FIG. 2A, the MSR 209 is depicted as beinglocated along a left side of the touch screen display 201 when in thefirst position. As will be appreciated by those skilled in the relevantart(s), the MSR 209 may be located along a different side of the touchscreen display 201 or elsewhere integrated with the POS device 101. TheMSR 209 may be capable of reading at least 3 magnetic tracks. The MSR209 may additionally be configurable to change the type of encryption ituses for direct processing, for example to the Verifone encryptionstandard or another encryption standard/protocol after a firmwareupdate. The MSR 209 may include tokenization capability and device/hostauthentication. Instead of the MSR 209 being a magnetic stripe reader,the MSR 209 may be a Europay, MasterCard and Visa (EMV)standard-compatible reader designed to cooperate with integrated circuitpayment cards (commonly referred to as chip cards). In an embodiment,the POS device 101 may include as part of the MSR 209 both hardware fora magnetic stripe reader and an EMV-compatible reader, or just hardwarefor one of the two.

The base 203 of POS device 101 houses at least a subset of theintegrated components, for example the cash drawer 205 and receiptprinter slot 207 (and receipt printer, not shown in FIG. 2A). The cashdrawer 205 may include a key lock 205.1 and a slot 205.2, for examplefor receiving checks. The cash drawer will be discussed in more detailwith respect to FIGS. 5 and 6 below.

The receipt printer slot 207 shown in the base 203 allows receipts to beaccessed by the primary user (e.g. merchant). The base 203 houses anintegrated receipt printer, for example a line type thermal printer. Inan embodiment, the printer may use 58 mm wide paper with a paper rolldiameter of 80 mm that rolls automatically. As will be appreciated bythose skilled in the relevant art(s), other dimensions are possible aswell. In addition, the receipt printer may be operable in USB or serialmodes. When in USB mode, the receipt printer may be configured to beable to decode a drawer release signal for the cash drawer 205. The cashdrawer is connected to a main processing unit, such as processor 401 ofFIG. 4 discussed below, directly and not through the printer allowingmore software choices to control the cash drawer such as knowing if itis open or closed.

FIG. 2B illustrates a rear view of a multi-mode point-of-sale device,such as the POS device 101 of FIG. 1 , according to an exampleembodiment. In the following discussion, a rear view is shown from theperspective of a secondary user that faces the POS device 101. As oneexample, the secondary user may be a customer at the merchant premisesof the organization. In FIG. 2B, the touch screen 201 is in the first orprimary position (facing the primary user of the POS device 101). Aswill be shown in FIG. 7 below, the touch screen display 201 may pivot toa secondary position that faces the secondary user.

In the example of FIG. 2B, in addition to the MSR 209, base 203, andtouch screen display 201 discussed above with respect to FIG. 2A, abarcode scanner 215, customer-facing display 213, data interface 211,and the mount 219 are also visible around touch screen 201.

The barcode scanner 215 may be located along an edge of the touch screendisplay 201. For example, in FIG. 2B the barcode scanner 215 is locatedat the side of the touch screen display 201 opposite the MSR 209. Aswill be appreciated by those skilled in the relevant art(s), the barcodescanner 215 may be located along a different side of the touch screendisplay 201 or elsewhere integrated with the POS device 101. The barcodescanner 215 may incorporate a proximity detector to activate a laserused for the barcode scanning. The barcode scanner 215 may be able toperform, in an embodiment, 270 scans per second. As will be appreciatedby those skilled in the relevant art(s), other scanning speeds may beused.

The customer-facing display 213 may be located in the base 203 of thePOS device 101, shown in FIG. 2B as located at the rear of the base 203.In an embodiment, the customer-facing display 213 may display whiteletters against a black background, for example using a display thatdisplays 16 characters in each of two lines of the display with a filmcompensated super-twisted nematic (FSTN) Negative Transmissive LiquidCrystal Display (LCD). The customer-facing display 213 may be used, forexample, to show, in real time, the item that has been currently scanned(for example by a clerk operating the barcode scanner 215 or camera 217of the POS device 101) to the customer.

The data interface 211 may be located along a side of the base 203. Forexample, FIG. 2B depicts the data interface 211 as located along theright side of the base 203 when viewed from the perspective of theprimary user, although the data interface 211 may be located elsewhereintegrated with the POS device 101. In an embodiment, the data interface211 may be one or more USB ports, such as USB 2.0 or USB 3.0. As will beappreciated by those skilled in the relevant art(s), other interfacesmay be used in addition to or instead of the USB ports, such as serialports, firewire ports, etc.

The touch screen display 201 is located within housing 221. The housing221 is mounted upon the mount 219, which is in turn connected to thebase 203 so that the mount 219 is still permitted a range of motion. Themount 219 may pivot between the first and second positions to enableeither the primary or the secondary user, respectively, to be able todirectly interact with the touch screen display 201. In an embodiment,the mount 219 may pivot between the two positions with little friction.The mount 219 may additionally include a geared cam action to slow themotion of the housing 221 as it pivots so as to avoid hard contactbetween the mount 219 and the base 203 (e.g. a dampener), for examplewhen the primary or secondary user applies excessive force to beginpivoting. To this end, the mount 219 may use a notched keyway to gentlylock the mount 219 in each of the two positions. An operating system ofthe POS device 101 causes what is displayed on the touch screen display201 to change based on a detection of whether the screen is facing theprimary or secondary user.

FIG. 3 illustrates internal components of a multi-mode point-of-saledevice, such as the POS device 101 of FIG. 1 , according to an exampleembodiment. For sake of simplicity of discussion, only those elementsthat have not been introduced already in the above figures will bediscussed.

Printer roll 301 is a roll of paper or other suitable material that isused for the receipt printer discussed above with respect to the receiptprinter slot 207 shown in the base 203, which allows receipts to beaccessed by the primary user.

The transfer board 305 may be, for example, a printed circuit board witha general purpose input/output (GPIO). In an embodiment, the transferboard 305 may interface USB port(s), a customer facing display, andother inputs/outputs as discussed by way of example in FIG. 4 below. Thetransfer board 305 may be located in the base 203 of the POS device 101and connect to a main system board, such as a motherboard, locatedelsewhere in the POS device 101 or integrated with the transfer board305. In an embodiment, the main system board contains a processor,memory, storage, and other elements and may be physically located inclose proximity to the touch screen display 201, for example just belowthe touch screen display 201 in the housing 221. In an alternativeembodiment, the main system board may be located within the base 203 andconnect to the touch screen display 201 via appropriate signalconnections, as will be appreciated by those skilled in the relevantart(s).

In an embodiment, solenoid 307 controls the opening of the cash drawer205. The solenoid may be electrically driven to release the cash drawerupon a command from a processor of the POS device 101. In addition,there may be a mechanical fail-safe release switch that may be locatednear the solenoid 307. As will be appreciated by those skilled in therelevant art(s), any type of mechanical or electrical mechanism may beused to control opening and closing of the cash drawer 205.

Power supply 309 supplies power to the integrated components of the POSdevice 101. In an embodiment, the power supply 309 may be an internalsupply having a range of 100 to 240 V (alternating current) at 50 to 60Hz. In an embodiment, the power supply may output different voltages,such as 3.3V, 1.5V, 5V, and/or 8V. Other voltage levels may additionallyor alternatively be output from the power supply 309, or by othercircuitry or hardware connected to the power supply 309, as will beappreciated by those skilled in the relevant art(s). A power indicator,such as an LED, may show different statuses of the system based oncolor. In an example, the LED may be white to show that the system ispowering on from an off state or waking from a sleep state. The LED mayemit an amber color when the system is entering sleep state, and mayemit red when the system is powering down.

FIG. 4 illustrates a block diagram of internal components of amulti-mode point-of-sale device, some of which may be integrated, forexample, on one or more printed circuit boards or substrates, accordingto an example embodiment. Select elements of FIG. 4 correspond to,control, access, process, and/or interact with elements described abovewith respect to FIGS. 2A, 2B, and 3 , as will be appreciated by thoseskilled in the relevant art(s) based on the teachings contained herein.

The internal components include processor 401, which may include one ormore processing cores. Further, the processor 401 may be a collection ofprocessors operating in cooperation for given computing tasks. In anembodiment, the processor may utilize an ARM architecture, althoughother processor architectures, types, speeds, and configurations arepossible as will be appreciated by those skilled in the relevant art(s).The processor 401 controls operation of the POS device 101, includingthe software used to operate the POS device 101 as well as the internaland integrated components. In an embodiment, a thermostat may be locatedin close proximity to the processor 401 to sense the temperature of theprocessor 401.

The internal components also include memory 403 and storage 405. In anembodiment, memory 403 may be random access memory (RAM) in any density,for example but not limited to 1 GB. Storage 405 may be any kind ofpersistent storage, for example flash memory (NAND or NOR). As will beappreciated by those skilled in the relevant art(s), other types oflonger-term storage may be used instead or in addition.

The POS device 101 may include one or more communications transceivers,such as a wired transceiver 407 and/or a wireless transceiver 433. Thewired transceiver 407 may be an Ethernet port for connection to a LAN.The wireless transceiver 433 may be a Wi-Fi transceiver that iscompliant with IEEE 802.11 standards, such as b/g/n/ac. As will beappreciated by those skilled in the relevant art(s), other standards maybe used to same effect. In addition to or as part of one of the abovetransceivers, the POS device 101 may also incorporate a near fieldcommunications (NFC) device, such as a NFC communicator, NFC initiator,or NFC target. The NFC device may operate in active or passivecommunication modes, depending upon the NFC device's configuration. Inan embodiment, the NFC device may be located in an area of the bezelsurrounding the touch screen display 201, though other locations arepossible. Communications may be secured according to one or moresecurity and/or encryption protocols, for example Secure Sockets Layer(SSL) to name just one example.

The internal components can also include a speaker 409. The speaker 409may provide audible system feedback to users, such as the primary and/orsecondary users of the POS device 101. The speaker 409 may have onechannel and have 1 watt of power. As will be appreciated by thoseskilled in the relevant art(s), more speakers and/or channels arepossible as well.

System control 411 provides an interface for power on/off button 415 andpower indicator 413. The power on/off button 415 may control whether thePOS device 101 is on or off. The power on/off button 415 may be one or aplurality of buttons each dedicated to a different aspect—e.g., theremay be a dedicated power button to control power to the transfer board305 and a dedicated power button to control power to the touch screendisplay 201. In an embodiment, the power on/off button 415 may beconfigured to turn on and off, respectively, the back light of the touchscreen display 201 while leaving power supplied to other components ofthe POS device 101. The processor 401 may, via system control 411,control the power indicator 413, which may be one or more LEDs thatoperate as discussed above with respect to power supply 309.

The processor 401 may interact with, and control in certain embodiments,several components via interface 417. In an embodiment, interface 417 isa GPIO interface. For example, the processor 401 may control operationof optical sensor 423, bar code reader trigger 425, and accelerometer427.

The accelerometer 427 is located in close proximity to the touch screendisplay 201. In this manner, whenever the touch screen display 201 ispivoted from one position to the other, such as the position associatedwith the primary to the position associated with the secondary user (orvice versa), the accelerometer 427 may move with the touch screendisplay 201 and therefore senses the motion and/or change in position.In an embodiment, the accelerometer 427 may have an activation angle of+/−15 degrees from horizontal and an activation angle tolerance of +/−5degrees. Further, the accelerometer 427 may have an effective activationangle range of +/−10 to 20 degrees, with a hysteresis angle of at least+/−20 degrees. As will be appreciated by those skilled in the relevantart(s), other angles/ranges are possible as well.

The processor 401 also controls the relay 419 and solenoid 421 via theGPIO interface 417. The solenoid 421 may be driven by the relay 419 tocontrol the latch/release of the cash drawer 205, as well as provisionof a push to open the cash drawer 205. The GPIO interface 417 may alsocontrol the backlight of the touch screen display 201, for example toturn off the backlight after a predetermined period of inactivity so asto extend the operating life of the touch screen display 201. Similarlythe GPIO interface 417 may be used to disable any USB external ports forsecurity.

The processor 401 also controls customer facing display 449 and receiptprinter 447 via interface 445. Interface 445, in an embodiment, is a setof serial interfaces, such as RS232, 422, or 485. Other types ofinterfaces, such as USB, are possible as will be appreciated by thoseskilled in the relevant art(s). The customer facing display 449 may bethe type of customer-facing display 213 discussed above with respect toFIG. 2B. The receipt printer 447 may be as described above with respectto FIG. 2A.

The processor 401 also controls the touch screen 431, the wirelesstransceiver 433, the barcode scanner 435, a card reader 437, a camera439, a mini USB connection 441, and an external connector 443 (e.g., anexternal USB port) via interface 429. In an embodiment, the interface429 may be a USB interface, although other types are possible as will beappreciated by those skilled in the relevant art(s). The touch screen431 may be the touch screen display 201 discussed in the previousfigures. In an embodiment, the processor 401 may provide high levelcommands and data to the touch screen 431 in cooperation with adedicated controller for the touch screen 431 (not illustrated in FIG. 4) that provides low-level commands used for operation. The barcodescanner 435 and the camera 439 may be the barcode scanner 215 and camera217, respectively, discussed in the figures above.

The processor 401 may also control the panel 453, for example a panelinterface driving a displayed image resolution for the touch screendisplay 201 of 1920×1080, via the interface 451. Other resolutions arepossible as is understood by those skilled in the relevant art(s). Theinterface 451 may include an embedded DisplayPort interface for thepanel 453 and a back light driver.

FIG. 4 diagrammatically shows different hardware elements that have beenintegrated together into the single POS device 101, according to anembodiment. The POS device 101 may be designed and manufactured to be incompliance with one or more security standards, for example the PaymentCard Industry (PCI) data security standard or any other applicablestandard/protocol/specification for added security. The peripheraldevice may connect via USB or mini USB, such as in embodiments where thedata interface 211 in FIG. 2B is a USB interface or the mini USB 441,though other types of interfaces would work as well. Various securityfeatures of the POS device 101 are described in further detail below.

FIG. 5 illustrates an internal configuration of a closed-drawerdetection mechanism that may be used with the cash drawer 205 of FIG.2A, according to an example embodiment. The cash drawer 205 may includedividers 501, for example to divide up the cash drawer 205 into fourcompartments for paper currency and five trays for coin currency. Othercombinations of compartments and trays are possible as well. In anembodiment, the cash drawer 205 is designed according to a smaller formfactor than conventional cash drawers, e.g. 2/3 the size of aconventional cash drawer. Other sizes and dimensions are possible aswill be recognized by those skilled in the relevant art(s).

The cash drawer 205 also includes a ridge 503, such as a rib of plasticextending above the drawer leads. An optical pair 507 is mounted on acircuit board 505, which in an embodiment may be part of the transferboard 305. In an embodiment, the optical pair 507 includes an LEDsource, for example infrared, and a photo transistor. As shown in FIG. 5, the LED source may be the upper device of the optical pair 507 and thephoto transistor may be the lower device of the optical pair 507.

The cash drawer 205 is depicted in the example of FIG. 5 in an openposition with respect to the base 203. In this configuration, the systemof the POS device 101 knows that the cash drawer 205 is open because theridge 503 is moved out of the optical path between the elements of theoptical pair 507, such that the light emitted from the LED sourcereaches the photo detector.

FIG. 6 illustrates an internal configuration of the closed-drawerdetection mechanism discussed with respect to FIG. 5 that may be usedwith the cash drawer 205, according to an example embodiment. In FIG. 6, the cash drawer 205 is moved to a closed position with respect to thebase 203. In this position, the ridge 503 has been placed in a positionalong the cash drawer 205 such that the ridge 503 interrupts the opticalpath between the optical pair 507. The system of the POS device 101receives a signal in this situation indicating that the light from theLED source is not detected at the photo transistor. The systemdetermines from this that the cash drawer 205 is now closed. Forexample, the signal level may be “high” (e.g., logic level high) whenthe optical path is not interrupted, which is interpreted as the cashdrawer 205 being in an open position. Alternatively, the signal levelmay be set to “low” (e.g., logic level low) when the optical path is notinterrupted, with the system interpreting the cash drawer 205 opencondition based on the alternative low signal.

FIG. 7 illustrates different configuration modes of a multi-modepoint-of-sale device, such as the POS device 101 of FIG. 1 , accordingto an example embodiment. FIG. 7 illustrates the touch screen display201, located on mount 219, being in one of two positions 701 or 703. Inan embodiment, the position 701 corresponds to the first or primaryposition where the touch screen display 201 faces the primary user ofthe POS device 101 (e.g., merchant) and the position 703 corresponds tothe second or secondary position where the touch screen display 201faces the secondary user (e.g., customer).

The operation that occurs when the touch screen display 201 pivotsbetween the primary and secondary positions is described with respect toFIG. 8 , which is a flowchart illustrating a process 800 for switchingbetween a first interface and a second interface of a multi-modepoint-of-sale device, such as the POS device 101 of FIG. 1 , accordingto an example embodiment.

At step 802, the touch screen display 201 is initiated with the firstinterface positioned and configured for interaction with the primaryuser, such as a merchant or store clerk. This occurs, for example, uponsystem startup when the touch screen display 201 is in its restingposition in the first position, such as position 701 of FIG. 7 . Thefirst interface may include, for example, one or more graphic userinterfaces (GUIs) used to display and/or enter product information,price, payment information for a transaction, and/or enable other tasksactions associated with the transaction.

At step 804, the system (for example processor 401) determines whether aposition change of the touch screen display 201 to the second positionhas been detected. Detection of position changes may be provided by theaccelerometer 427 discussed above with respect to FIG. 4 . If a positionchange has not been detected at step 804, the process 800 proceeds tostep 806, in which the system maintains the first interface to enableclerk interaction with the system and periodically checks (or through aninterrupt approach) at step 804 whether a change has been detected, forexample a few times each second. Alternatively, the system maycontinuously check whether a position change has been detected.

If a position change is detected at step 804, then the process 800proceeds to step 808. At step 808, in response to detecting the positionchange from the first position 701 to the second position 703, thesystem changes from the first interface to displaying the secondinterface on the touch screen display 201. The second interface mayinclude, for example, one or more GUIs for a customer to view, access,select and/or enter payment information to complete a transaction,and/or enable other tasks or actions associated with the transaction. Inaddition or alternatively, the second interface may include advertisinginformation, as discussed in more detail below.

After the system has changed what is output on the touch screen display201 to the second interface, at step 810 the system (for exampleprocessor 401) then again checks whether a position change of the touchscreen display 201 back to the first position facing the merchant orclerk has been detected. If a position change back to the first positionhas not been detected at step 810, then the process 800 proceeds to step812, in which the system maintains the second interface to enablecustomer interaction with the system. The system may periodically check(or use an interrupt approach) at step 810 whether a change has beendetected, for example a few times each second. Alternatively, the systemmay continuously check whether a position change has been detected.

If a position change from the second position has been detected at step810, then the process 800 proceeds to step 814. At step 814, in responseto detecting the position change from the second position 703 to thefirst position 701, the system changes from the second interface to thefirst interface on the touch screen display 201. The process 800 thenproceeds back to step 804 to check if or when a position change againoccurs. The process 800 ends when the system is powered down.

In some situations, the touch screen display 201 may take a noticeableperiod of time for the scanning baseline of the touch screen display 201to update when the display is tilted, such as pivoting between positions701 and 703 as discussed above with respect to FIG. 7 . For example,this may occur when a SAW touch screen is used as the touch screendisplay 201. FIG. 9 is a flowchart illustrating a process 900 formaintaining touch performance of a touch screen, such as touch screendisplay 201, according to an example embodiment that addresses this.

According to the process 900, the POS device 101 has the ability toreset or power cycle the controller that controls the touch screendisplay, such as the processor 401 that controls the touch screendisplay 201. In an embodiment, the operating system has access to areset pin of the controller. Alternatively or in addition, the operatingsystem has control of a power supply to the controller to be able topower cycle the controller.

At step 902, a sensor detects a change in position, such as a tilt, ofthe touch screen display. For example, the accelerometer 427 of FIG. 4detects a pivot of the touch screen display 201 in the housing 221. Inan alternative embodiment, a rotary encoder may be constructed with themount 219 to detect changes in position of the housing 221. As will beappreciated by those skilled in the relevant art(s), the change inposition may be detected in other ways.

Once a change in position has been detected, at step 904 the system theneither places the controller into reset by assertion of the propersignal on the reset pin, or powers off the controller while the touchscreen is in motion. During this time, touch capability is disabled forthe touch screen.

At step 906, the sensor detects that the change in position has stopped,for example the touch screen display 201 has stopped its pivot.

At step 908, the system releases the reset signal to the controller.Alternatively, in embodiments where the system controls the powerinstead of use of a reset, the system powers the controller back on.When the controller comes out of reset and/or powers back on, it beginsa process of relearning a baseline for the touch screen and touch isagain enabled. In this manner, the system is able to acceleratere-learning of the scanning baseline to maintain predictability of touchperformance after a change in position. Although process 900 has beendiscussed with respect to embodiments where the touch screen uses SAWtechnology, process 900 may similarly be used with other touch screentechnologies that rely on a baseline for touch operation.

FIG. 10 is a block diagram of a server system, for example the back-endserver 109 or the transaction server 111, according to an exampleembodiment. The server 1001 may include one or more processors 1003. Theone or more processors 1003 may each include one or more processingcores, capable of performing parallel and/or sequential operations.Server 1001 may also include a transceiver 1005, for example an Ethernetconnection, Wi-Fi connection, or other connection capable of enablingthe server 1001 to transmit and receive data to/from external sources,such as any one or more of the POS device 101, computing device 103,mobile device 105, and transaction server 111 of FIG. 1 . The server1001 may include a data store 1007, for example a hard drive, flashdrive, or other types of memory as will be understood by persons skilledin the relevant art(s).

The server 1001 may host web applications via web application module1009. In an embodiment, a user of the cloud-based point-of-sale systemof the present disclosure may manage their inventory and perform otherfunctions by accessing their account(s) via a web site provided ormanaged by the web application module 1009. The server 1001 may alsoinclude a cloud services module 1011 used for data analytics, inventorymanagement, and employee management among other examples. In anembodiment, the cloud services module 1011 may be a database withassociated data analysis software.

An exemplary embodiment of server 1001 will be discussed in furtherdetail below with respect to FIG. 36 . As will be appreciated by thoseskilled in the relevant art(s), the different functions of server 1001depicted in FIG. 10 may be performed wholly within the server 1001, oralternatively may be performed by a plurality of different servers orother types of computing devices operating in cooperation within ageographic vicinity of each other or at geographically differentlocations.

2. SOFTWARE FEATURES

FIG. 11 shows an alternative system architecture view 1100 according toan embodiment, showing a workstation 1102, a point of sale (POS) device1104, and a mobile device 1106. It is noted that FIG. 11 is analternative embodiment of FIG. 1 , and in embodiments, similarly namedelements shown in FIGS. 1 and 11 may include any combination of thefeatures, functionality and structure described herein.

Workstation 1102, POS device 1104, and a mobile device 1106 interactwith cloud 1150. As will be appreciated, a cloud can include (orconnect) a number of different servers and databases. For example, inthe example of FIG. 11 , cloud 1150 includes a web server 1152 (in someembodiments, shown in FIG. 1 as server 109) which accesses a database1154. As would be appreciated by those skilled in the relevant art(s)based on the description herein, cloud 1150, as depicted in FIG. 11 , isan exemplary illustration and not intended to be limiting. For example,in FIG. 1 , cloud 107 is shown as connecting components, as opposed tothe depiction in FIG. 11 of cloud 1150 including components. Inalternate embodiments, cloud 1150 can include multiple web servers thatare, for example, coupled using a network such as the Internet. In suchan embodiment, services provided by web server 1152 can be distributedacross multiple servers. In further embodiments, one or more of theseservers can be coupled to one or more respective databases.

In an embodiment, a management module 1170 remotely controls POS devices1104 via web server 1152. For example, management module 1170 configuresand controls the functionality of POS devices 1104, and dictates thefunctions POS devices 1104 are allowed to perform. In an embodiment,management module 1170 achieves this control over the functionality ofPOS devices 1104 by pre-loading and/or updating software applications onPOS devices 1104. As described below, POS devices 1104 are secured(e.g., “hardened”). Accordingly, in embodiments, only management module1170 has the ability to configure and control the functionality of POSdevices 1104. The management module 1170 is external to POS devices1104.

In an embodiment, a merchant 1180 owns POS device 1104 (alternatively,merchant 1180 could rent, license, etc., POS device 1104), althoughmanagement module 1170 retains control over POS device 1104 as describedabove. As further described herein, web server 1152 provides inventoryinformation to POS device 1104. Such inventory information representsinventory the merchant 1180 offers for sale in the store (e.g., merchantpremises) in which POS device 1104 is located. In an embodiment, theinventory information is stored in database 1154, and is provided bymerchant 1180. The merchant 1180 does not directly save inventoryinformation in database 1154. Instead, in embodiments, the merchant 1180provides the inventory information to management module 1170 and/or webserver 1152, and management module 1170 and/or web server 1152 storessuch inventory information in database 1154. This is depicted in FIG. 29.

Merchant 1180 and management module 1170 may be the same (FIG. 30 ) ordifferent entities. Where they are different entities, merchant 1180 mayhave some rights to configure and control POS devices 1104 throughmanagement module 1170. For example, as described below, merchant 1180may have the ability to add additional stores and/or POS devices, manageinventory, etc. Accordingly, the functionality described herein can beunder the control of management module 1170 and/or merchant 1180 throughmanagement module, depending on the relationship agreed upon by theentity represented by management module 1170 and the entity representedby merchant 1180.

Exemplary embodiments of POS device 1104 and mobile device 1106 areprovided in FIGS. 13 and 15 , respectively, as well as elsewhere herein.In a further embodiment, POS device 1104 can be implemented as POSdevice 101, described above with respect to FIG. 1 . Moreover, anexemplary architecture of web server 1152 is provided in FIG. 12 . In anembodiment, workstation 1102 can be a computer that is connected to theInternet (e.g., a desktop computer, tablet or a laptop computer).Workstation 1102 can interact with web server 1152 (and other aspects ofcloud 1150) over a wired and/or wireless network, such as the Internet.For example, and as described in greater detail below, a user usingworkstation 1102 can use a Web browser running on workstation 1102 tonavigate to a website served by web server 1152. Web server 1152 canauthenticate the user (e.g., based on a received username and passwordentered by the user at workstation 1102), and can allow the user toaccess and/or control various functions including, e.g., inventory,restocking of inventory, notifications, and/or the operation of POSdevice 1104.

For example, and as described in greater detail herein, in architecture1100, a primary user (e.g., a clerk, owner, cashier, manager, or otherperson associated with a merchant) can use workstation 1102 and/ormobile device 1106 to update inventory, receive alerts, and manage theoperation of POS device 1104. Moreover, one or more POS devices 1104 canbe included in a store of merchant 1180. Workstation 1102 can be used tointeract with web server 1152 and database 1154 to update theinventories that are respectively offered to secondary users (e.g.,customers) at a given merchant's POS devices 1104 (in an embodiment,different inventories may be offered by a merchant's different POSdevices 1104). In a further embodiment, web server 1152 can pushnotifications to mobile device 1106 to allow primary user(s) to stayapprised of events affecting the merchant. As noted above, the merchant1180 can be a business entity that sells items, e.g., a retailer.

FIG. 12 shows an example functional block diagram of a web server 1200,according to an embodiment. For example, web server 1152 can beimplemented as shown in FIG. 12 . As shown in FIG. 12 , web server 1200includes a web service layer 1202, a presentation layer 1204, a businesslayer 1214, an enterprise integration layer 1226, and a data source1232. One or more of web service layer 1202, presentation layer 1204,business layer 1214, enterprise integration layer 1226, and data source1232 can be implemented as a class or an object in an object orientedprogramming language (e.g., C++ or Java).

Web service layer 1202 includes a service contract module 1206 and aservice adaptor module 1208. Service contract module 1206 maintains thedetails of services provided to different merchants. Service adaptormodule 1208 adapts services provided by web server 1200 to the specificprocesses of the merchant.

Presentation layer 1204 includes a user interface component 1210 and auser interface processing component 1212. In an embodiment, presentationlayer 1204 controls how web server 1200 interacts with one or more of aworkstation, a POS device, or a mobile device. For example, presentationlayer 1204 can control the different types of interfaces or pagespresented on a workstation, a POS device, and/or a mobile device. Userinterface component 1210 can store different user interfaces fordifferent merchants and different devices used by a merchant to accessweb server 1200. User interface processing component 1212 can processinteractions between web server 1200 and a merchant. For example, userinterface processing component 1212 can process inputs received from aworkstation, a POS device, and/or a mobile device and provide responsiveoutputs.

Business layer 1214 manages data flow through web server 1200. Forexample, business layer 1214 can manage security systems of web server1200, business work flows, business services, and/or business entitiesassociated with web server 1200. For example, business layer 1214 caninclude a number of classes and/or objects that handle one or more ofthese functions. Enterprise integration layer 1226 includes data accesscomponents 1228 and service interface 1230.

Data access components 1228 manage the interaction between web server1200 and data source 1232. In an embodiment, database 1154 can beimplemented as data source 1232. In an embodiment, data source 1232 canstore information such as inventory associated with merchant and/oradvertisements to be displayed on POS devices. Service interface 1230manages services external to web server 1200. For example, serviceinterface 1230 can interact with external services module 1234. Externalservices module 1234 can allow for, e.g., sending push notifications toone or more of a workstation, a POS device, and a mobile device. In afurther embodiment, external services module 1234 can include an emailinterface that allows for web server 1200 to send emails. In anotherembodiment, external services 1234 can send push notifications when theinventory has fallen below a predetermined threshold or if anotification regarding the status of one or more POS devices has beenreceived at web server 1200.

FIG. 13 shows an example functional block diagram of a POS device 1302,according to an embodiment. In an embodiment, POS device 1104 can beimplemented as POS device 1302. POS device 101 shown in FIG. 1 can alsobe implemented as POS device 1302. As shown in FIG. 13 , a POS device1302 can interact with an individual user 1350 (or multiple users). User1350 can be a primary user or a secondary user. In an embodiment, POSdevice 1302 can be a register located within a store of a merchant. Forexample, POS device 1302 can be implemented according as POS device 101,as described with respect to FIG. 1 .

As shown in FIG. 13 , POS device 1302 includes a presentation layer1310, a business layer 1312, a data layer 1314, a local data module1316, and cross cutting modules 1320. Presentation layer 1310 cancontrol what is shown on a touch screen of a POS device 1302. Forexample, presentation layer 1310 can include user interaction componentsand presentation logic components. These components of presentationlayer 1310 can control what is shown to users during a scanning phase ofa transaction and a purchasing phase of a transaction.

Business layer 1312 manages the flow of data within POS device 1302. Forexample, business layer 1312 can include a business workflow module thatmanages the transitions of POS device 1302. Business layer 1312 can alsoinclude a business entities module and a business components module thatstore information relating to the business entity, or merchant, thatowns POS device 1302 and components of that business.

Data layer 1314 can manage the access of POS device 1302 to local storedata and data stored within a web accessible device, e.g., the cloud.For example, data layer 1314 can manage access to a local data module1316. For example, local data module 1316 can include a local databaseand/or a local cache. For example, as will be described in greaterdetail below, local data module 1316 can store deferred transactions andinformation about the inventory of the merchant. As shown in FIG. 13 ,data layer 1314 can also control access to cloud base services 1360. Forexample, referring to FIG. 11 , data layer 1314 can control access tocloud 1150. For example, data layer 1314 can be used to sync theavailable inventory presented to the user 1350 with the inventoryincluded in database 1154.

POS device 1302 also includes cross-cutting modules 1320. In anembodiment, “cross-cutting” modules generally refer to modules thatprovide input to multiple different layers or modules of a device (andthus “cross-cut” the device). For example, in the embodiment of FIG. 13, cross-cutting modules 1320 are accessed by one or more of presentationlayer 1310, business layer 1312, and data layer 1314. As shown in FIG.13 , cross-cutting modules 1320 include a security module 1322, aconfiguration module 1324, and a communication/connectivity module 1326.The operation of security module 1322 will be described in greaterdetail below. Configuration module 1324 includes configuration detailsrelating to POS device 1302. For example, configuration module 1324 caninclude configuration settings relating to components of POS device1302, e.g., a cash drawer, a printer, a barcode scanner, a MSR, and/orCFD. Communication/connectivity module 1326 manages the communicationbetween POS device 1302 and the cloud. For example, in an embodiment inwhich POS device 1104 of FIG. 11 is implemented as POS device 1302,communication/connectivity module 1326 can manage communication betweenPOS device 1302 and cloud 1150.

FIG. 14 shows an example functional block diagram of an interfacebetween interface 1400 and various components of a POS device, accordingto an embodiment. In an embodiment, POS device 1302, shown in FIG. 13 ,can use interface 1400 to interface to with its components. As shown inFIG. 14 , interface 1400 includes application programming interfaces(APIs) 1410, operating system of libraries 1422, operating systemruntime 1424, device drivers 1432.

APIs 1410 include an API for each peripheral with which interface 1400communicates. Thus, in an example embodiment of FIG. 14 , APIs 1410include a cash drawer API 1412, a printer API 1414, a barcode scannerAPI 1416, a magnetic stripe reader (MSR) API 1418, and a consumer facingdevice (CFD) API 1419. Each of APIs 1410 allow applications running on aPOS device to communicate with respective ones of peripherals 1440. APIs1410 allow for communication to and from respective peripherals ofperipherals 1440. Operating system libraries 1422, operating systemruntime module 1424, and device drivers 1432 allow for communicationbetween APIs 1410 and respective ones of peripherals 1440. In anembodiment, one or more of device drivers 1430 can be implemented askernel mode drivers. It is noted the example of FIG. 14 is provided forillustrative purposes. Other architectures for interfacing mayalternatively be used.

FIG. 15 shows an example functional block diagram of a mobile device1510 that runs an application 1520, according to embodiment. Forexample, in an embodiment, application 1520 may be an application thatinterfaces with a cloud processing system. For example, in theembodiment in which mobile device 1106 of FIG. 11 is implemented asmobile device 1510, application 1520 can be an application thatinterfaces to cloud 1150 to allow for, e.g., management of inventory. Asshown in FIG. 15 , application layer 1520 includes presentation layer1522, business layer 1524, and data layer 1526. Presentation layer 1522can control the presentation of data received from a cloud and/orpresentation of forms allowing a user to submit data to the cloud.Business layer 1524 can control the flow of information from application1520 to the cloud and vice versa. Data layer 1526 can managecommunications between application 1520 and the cloud.

As shown in the diagram of mobile device 1510, in an embodiment,application 1520 communicates with other layers of mobile device 1510through API calls. For example, as shown in FIG. 15 , API layer 1514provides an interface between application 1520 and objective C run time1516. Objective C run time 1516 operates as an interface betweenapplication 1520 and operating system 1518.

Operating system 1518 communicates with hardware aspects of mobiledevice 1510. For example, as shown in FIG. 15 , operating system 1518communicates with processor 1530. Processor 1530 executes instructionsbased on, e.g., instructions stored in firmware 1532. Mobile device 1510communicates with the outside world through hardware 1534. For example,hardware 1534 can include wireless circuitry and/or other types ofcommunication mechanisms.

POS device use embodiments will now be discussed. FIG. 16 shows aflowchart of a method 1600 for setting up a POS device, according to anembodiment. Method 1600 is described with reference to the embodimentsshown in FIGS. 11 and 13 , but is not limited to those embodiments.

In step 1602, it is determined whether a user has logininformation/credentials. For example, the user can be a primary user,e.g., a store owner, store clerk or another employee or personassociated with the merchant to whom the POS device is associated. Forexample, in the embodiment of FIG. 11 , POS device 1104 can query theuser to determine whether the user has login credentials that will allowthe user to use the POS device.

If not, in step 1604, the user can attempt to create an account. Forexample, in the embodiment of FIG. 13 , presentation layer 1310 canpresent a screen requesting information from the user needed to createan account. Once that account information is received, data layer 1314can transmit this data to cloud based services to create the account.

In step 1606, the POS device is connected to a network. For example, inthe embodiment of FIG. 13 , POS device 1302 can be connected to anetwork through communication/connectivity module 1326. For example, thenetwork can be the Internet or a private network. For example,connecting to the network can allow the POS device to access cloud-basedservices (e.g., inventory control and remote configuration).

In step 1608, a user submits his/her credentials. For example, in FIG.13 , presentation layer 1310 can query a user for a user name andpassword. This information can be temporarily stored in local datamodule 1316. The credentials can then be transmitted to cloud basedservices through data layer 1314. For example, in the embodiment of FIG.11 , POS device 1104 can transmit the credentials to cloud 1150.

In step 1610, it is determined whether the user's credentials have beenauthenticated. For example, in the embodiment of FIG. 11 , web server1152 can access database 1154 to determine whether the submitted username is a valid user name and whether the password is a valid password.

In step 1612, the user signs into the POS device and inventory can bedownloaded to the POS device. For example, in FIG. 11 , the user canlogin into POS device 1104 and download inventory for the storeassociated with the POS device from cloud 1150, e.g., database 1154.

In an embodiment, when a customer checks out at a store, the POS device(such as 101, 1104, etc.) operates according to an input state and apurchasing state. In the input (or inputting) state, the POS device isoperated by a primary user (e.g., a store clerk) to input items that asecondary user (e.g., a customer) wants to purchase. Inputting items caninvolve scanning the barcode of items that the secondary user wants topurchase. For example, during the input state, the store clerk scans thebarcode of the items that the customer has selected and physicallybrought to the POS device to purchase (such as in a checkout line of astore). It will be appreciated that inputting items for purchase byscanning barcodes is one way of inputting items, but other ways can beused (e.g., the store clerk keying in codes assigned to a particularitem).

In the purchasing (or purchase or payment) state, the POS device isoperated by the user to enable the user to pay for the items inputtedduring the input state. For example, the POS device may guide the userthrough the processing of paying for the items using a credit card.

FIG. 17 shows a flowchart of a method 1700 for managing a purchasetransaction, during which time a POS device is used in the input andpurchasing states as described above, according to an embodiment. Method1700 is described with respect to the embodiments shown in FIGS. 11 and13 , but is not limited to those embodiments. In an embodiment, steps1702-1718 occur while a POS device is in the input state, and steps1720-1728 occur while the POS device is in the purchasing state.

In step 1702, it is determined whether favorites are saved for asecondary user, e.g., a customer. In an embodiment, repeat customers maybuy similar items in different trips to a store of merchant. Forexample, a customer of a grocery store may buy similar items on a weeklybasis from the grocery store. In an embodiment, a user can designatecertain items to be favorites. In an alternate embodiment, favorites canbe determined based on patterns found in the purchasing behavior of thecustomer.

For example, in the embodiment of FIG. 11 , POS device 1104 candetermine whether it has locally-saved favorites for the secondary user.In an alternate embodiment, POS device 1104 can query web server 1152 todetermine if favorites are saved for the secondary user. In this manner,favorites may be saved for a given secondary user across POS devices1104 and across merchants. The query to web server 1152 can include,e.g., a name, email address, phone number, or identification numberassociated with the user.

If favorites have been saved for the secondary user, then in step 1704,the user's favorites can be pre-populated into a list of items to bepurchased. For example, the touch screen of a POS device 1104 candisplay the pre-populated with favorite items.

In step 1706, it is determined whether a previously deferred transactionshould be continued. For example, a secondary user (e.g., a customer)may begin a transaction by bringing a number of items to a POS devicefor checkout and the primary user (e.g., a cashier) may input one ormore of those items. The secondary user may choose to defer rather thanprovide payment for the input items. Later, shown here at step 1706, thecustomer can continue the transaction at a POS device withoutre-inputting items that had be previously input.

In step 1708, the previously deferred transaction is loaded. Forexample, in FIG. 11 , POS device 1104 can load a previously deferredtransaction from a locally stored memory. In another embodiment, POSdevice 1104 can load a previously deferred transaction from cloud 1150.For example, POS device 1104 can interact with web server 1152 toretrieve a previously deferred transaction from database 1154.

For example, FIG. 18 shows an exemplary screen shot 1800 of a touchscreen of a POS device that allows for previously deferred transactionsto be loaded. For example, if the secondary user states that apreviously deferred transaction should be loaded, the primary user canpush a button to call up deferred transactions available on the POSdevice. As a result, screen shot 1800 may be displayed on the touchscreen of the POS device. The primary user can switch between differentdeferred transactions by selecting one of transactions 1802-1808. Afterone of transactions 1802 to 1808 is selected, the items included in thattransaction can be loaded and the transaction can continue. For example,the forgotten item can be added to the previously inputted items forpurchase.

In step 1710, it is determined whether additional items are needed to beinput. For example, if the primary user has not yet scanned an item thatthe secondary user wants to purchase, the item to be purchased can beinput. In a further embodiment, if one or more items have already beeninput, the secondary user has a pre-populated list of favorites, or thesecondary user has loaded a previously deferred transaction, additionalitems can be input.

If additional items are to be scanned, in step 1712, the additionalitems are scanned. For example, using a barcode scanner of the POSdevice, the primary user can scan the barcode of an item that thesecondary customer would like to purchase. In another embodiment, theprimary user can key, or type, in a code assigned to the item to bepurchased. Those skilled in the relevant arts will appreciate thatscanning barcodes and keying in codes are two illustrative ways ofinputting an item to be purchased. Other ways of inputting items to bepurchased can be used.

In step 1714, it is determined whether a payment input has beendetected. For example, the primary user can provide an input indicatingthat the POS device should transition from an inputting state to apurchasing state. For example, in the embodiment of FIG. 11 , POS device1104 can transition from a scanning state to a purchasing state based oninput from the primary user. For example, the primary user can push abutton on a touch screen of the POS device to instruct the POS device totransition to a purchasing state when all items that the secondary userwould like to purchase have been input.

In another embodiment, the primary user can perform a gesture on a touchscreen of the POS device that indicates the POS device should transitionto the purchasing state. For example, the POS device can be configuredsuch that whenever the primary user swipes from left to right (or rightto left) across the face of the touch screen, the POS device transitionsto a payment state.

Alternatively, as described above, the POS device can have a hinge thatenables the touch screen to “flip” from a position facing the primaryuser, to a position facing the secondary user. For example, the primaryuser can apply pressure to the screen so that it flips to face thesecondary user. In this embodiment, the flipping of the touch screen canbe the input based on which the POS device transitions to the purchasingstate.

In step 1716, it is determined whether a transaction should be deferred.For example, as noted above, if a secondary user determines that atransaction should be deferred (e.g., because he or she forgot items tobe purchased, as described above), the transaction details includingitems to be bought, can be stored on the POS device and/or otherdevices. For example, the primary user based on instructions from thesecondary user can push a button on a touch screen of the POS device toindicate that a transaction should be deferred. If in step 1716, it isdetermined that the transaction should be deferred, in step 1718, atransaction is deferred.

Returning to step 1714, if a payment input is detected, then in step1720, payment is requested from the secondary user. For example, in FIG.11 , POS device 1104 can request payment in a number of different forms,e.g., cash, check, or credit card. In the embodiment in which the userelects to pay with a credit card, the screen of POS device 1104 can beused to guide the secondary user through the process. For example, FIG.19 shows a diagram of an exemplary POS device 1900, according to anembodiment. As shown in FIG. 19 , a touch screen 1902 of POS device 1900displays an arrow to show the user the direction with which to swipe hisor her credit card in MSR 1904 (or a similar module, e.g., a similar EMVmodule). As shown in FIG. 19 , in embodiments, a substantial portion oreven the entire touch screen can be dedicated to providing auser-friendly interface to the secondary user to guide the user throughthe payment process.

In step 1722, payment input is received from the secondary user. Forexample, the secondary user can swipe his/her credit card using an MSRdevice of the POS device. Additionally or alternatively, cash and/or acheck and well as other payment option information can be received fromthe secondary user.

In step 1724, an indication is made of whether the payment wassuccessful. For example, if the secondary user elects to pay with acredit card, the POS device can indicate whether credit card processingwas successful. For example, FIG. 20 shows an exemplary screen shot 2000of a touch screen of a POS device, according to an embodiment. As shownin FIG. 20 , a substantial portion or the entire touch screen can bemodified to indicate that the payment was successful. As would beappreciated by those skilled in the relevant arts based on thedescription herein, if the swipe was unsuccessful, screen 2000 caninstead indicate that the swipe was not successful.

In an alternate embodiment, steps 1722 and 1724 can be completed usingnear field communication (NFC). NFC can refer to communication betweendevices that is established based on the proximity between the devices.For example, mobile devices, e.g., smartphones, can implement NFC suchthat communication is established when the devices are brought within acertain proximity of each other or when the devices touch. NFC devicescan further be configured to interact automatically. Thus, when twoNFC-enabled mobile devices are brought within close enough proximity tofacilitate NFC, the devices can transmit and receive data among eachother. Bluetooth is a non-limiting example of NFC.

FIG. 21 shows an NFC embodiment including a POS device 2102, a mobiledevice 2104, and a financial institution 2106. A secondary user can usemobile device 2104 to interact with POS device 2102 and a financialinstitution 2106 to provide payment for a transaction. For example, oncePOS device 2102 has transitioned from the input state to the purchasingstate, mobile device 2104 can transmit a purchase request to POS device2102. For example, mobile device 2104 can automatically transmit thepurchase request when it comes within a proximity of POS device 2102that allows for NFC. In response, POS device 2102 can transmit merchantfinancial information to mobile device 2104. Mobile device 2104 can thentransmit this merchant information along with the purchase information,e.g., the total price of the transaction, to financial institution 2106.Financial institution 2106 can be used to process the transaction. Afterthe transaction is processed, financial institution 2106 can transmit aconfirmation to mobile device 2104. In a further embodiment, financialinstitution 2106 can transmit a confirmation to a cloud associated withPOS device 2102. For example, this confirmation can be used to update aninventory associated with a store of POS device 2102. The communicationflows shown in FIG. 21 can be implemented using any combination of wiredand wireless mediums.

In step 1726, financial aspects of the transaction are processed. Forexample, a financial institution such as a bank can be used to providepayment to a merchant for the items that are purchased.

In step 1728, an inventory is updated. For example, in the embodiment ofFIG. 11 , web server 1152 can receive the details of the transactionfrom POS device 1104. Based on this information, web server 1152 canupdate database 1154. For example, web server 1152 can decrease theinventory associated with one or more items that have been purchased.Thereafter, web server 1152 can periodically or in real-time provideupdated inventory to POS device 1104, or provide updated inventory upondemand by POS device 1104. Accordingly, in an embodiment, the most up todate inventory of items offered for sale by POS device 1104 ismaintained remotely at web server 1152 and database 1154, rather thanPOS device 1104 itself. In the same manor, a purchase history of asecondary user, e.g., a customer, can be recorded.

FIG. 22 shows a flowchart of a method 2200 for adding a store for anexisting merchant, according to an embodiment. Method 2200 is describedwith respect to the embodiments shown in FIG. 11 , but is not limited tothose embodiments.

In step 2202, a request to add a new store is received. For example, inFIG. 11 , a primary user can log in to an account with web server 1152through workstation 1102. For example, a primary user can useworkstation 1102 to navigate to a website associated with web server1152. The user can then log in to his or her account with web server1152. Once logged in, the user can submit a request to add a new store.

In step 2204, an identification number or code is obtained which isassociated with a merchant. For example, in FIG. 11 , web server 1152can obtain an identification number or code associated with the merchantfor which a new store is to be opened from database 1154.

In step 2206, a new store is opened for the merchant. For example, inFIG. 11 , web server 1152 can open a new store for the user usingworkstation 1102. Once the new store is open, the primary user can addinventory to the store through interaction with web server 1152 withworkstation 1102. For example, the user can request to add inventory forspecific items through interaction with web server 1152. Adding andupdating inventory will be described in greater detail below.

FIG. 23 shows a flowchart of a method 2300 for adding a POS device to astore of a merchant, according to an embodiment. Method 2300 isdescribed with reference to the embodiments shown in FIG. 11 , but isnot limited to that embodiment.

In step 2302, a request to add a POS device is received. For example, inFIG. 11 , a request can be received at web server 1152 from workstation1102 to add a POS device 1104.

In step 2304, an identification number or code for the requestingmerchant is obtained. For example, in FIG. 11 , web server 1152 can usethe request received from workstation 1102 to obtain an identificationassociated with the merchant.

In step 2306, a primary user logs in to the POS device. For example, aprimary user can log in to a POS device 1104 to be added to a store.After logging in to POS device 1104, POS device 1104 can send aninitialization message to web server 1152.

In step 2308, the POS device is tied to the merchant's identificationnumber or code. For example, in FIG. 11 , web server 1152 can tie theadded POS register device 1104 to the merchant's identification(“merchant ID”). In a further embodiment, the merchant can specify whichstore the POS device will be added for. For example, the merchant mayhave many stores, each with its own respective inventory. Based on inputreceived from workstation 1102, web server 1152 can tie POS device 1104to a specific store of the merchant.

In an embodiment, the POS device can query a primary user to enter themerchant ID and a code or number for the POS device (“POS device ID”).In an alternate embodiment, the merchant ID and/or the POS device ID canbe preprogrammed in a memory of the POS device. In a further embodiment,the merchant ID and/or the POS device ID can be obtained from thefinancial institution that processes purchase transactions on behalf ofthe merchant. In such an embodiment, the primary user (e.g., a storeclerk) may not need to be aware of the merchant ID and/or the POS deviceID.

In step 2310, the POS device is synced with the store's inventory. Forexample, in FIG. 11 , web server 1152 can access database 1154 to obtaininventory associated with the store of the merchant. Web server 1152 cantransmit this information to the added POS device 1104.

In an embodiment, POS devices of a store and/or merchant can provide thesame inventory. For example, each POS device of a store can offer thesame items for purchase. Having each POS device of a store offer thesame items for purchase from the same inventory reduces the possibilityof conflict among different POS devices of a store. For example, havingeach POS device of store access the same inventory (e.g., via acloud-based server and database) can ensure that updates from one POSdevice are reflected in an inventory provided by another POS device. Ifa purchase at a first POS device results in the last one of a first typeof item being purchased, all other POS devices can subsequently beupdated to no longer offer that item for purchase. In an alternativeembodiment, POS devices of a given store and/or merchant offer differentitems for purchase.

Cloud-based services embodiments will now be discussed. As describedabove with reference to FIG. 11 , POS devices can be one aspect oflarger, cloud-based environment. For example, POS devices can be coupledto cloud-based services over a network such as the Internet. As aresult, a primary user using a network-enabled workstation (or mobiledevice) can interact remotely with POS devices 1104. For example, astore owner (i.e., merchant 1180) can remotely interact with one or morePOS devices 1104 located in one or more stores and/or backend servers toremotely manage the inventory available to be purchased at these POSdevices. Also, management module 1170 can remotely interact with one ormore POS devices 1104 to load or configure software applications on thePOS devices 1104.

As described below in embodiments of FIGS. 24 and 28 , theseinteractions can take on multiple forms. For example, in FIG. 24 , theseinteractions can include one or more of controlling screens presented atthe POS devices, receiving notifications regarding the status of the POSdevices, and remotely controlling the POS devices based on thenotifications. In the embodiment of FIG. 28 , these interactions caninclude receiving notifications regarding inventory accessed by the POSdevices, requesting additional inventory that can be purchased using thePOS devices, and otherwise updating inventory offered by a store's POSdevices. In a further embodiments, the steps shown in FIGS. 24 and 28can repeat continuously, notifying and allowing the primary user torespond to events such as low inventory or POS device malfunction insubstantially real time. In various embodiments, the operations of FIGS.24 and 28 can be under the control of merchant 1180 and/or managementmodule 1170, depending on the rights respectively assigned to each.

Accordingly, FIG. 24 shows a flowchart of a method 2400 for managing POSdevices, according to an embodiment. Method 2400 is described withreference to the embodiments shown in FIGS. 1 and 11 , but is notlimited to those embodiments. In an embodiment, steps 2402 and 2404relate to controlling the touch screen of the POS device, and steps2406-2408 relate to actions performed based on status-basednotification(s) received from the POS device.

In step 2402, it is determined whether a request to remotely control aPOS touch screen is received. For example, in FIG. 11 , web server 1152can determine whether a request to control a screen of POS device 1104has been received from workstation 1102. In this example, a primaryuser, using workstation 1102, can log in to an account for the merchantof the primary user maintained by web server 1152. After logging in, theprimary user can request to control the screen of POS device 1104.

If it is determined in step 2402 that a request to remotely control thePOS touch screen has been received, then in step 2404, the touch screenof the POS device is remotely controlled by the requesting entity. Forexample, in FIG. 11 , workstation 1102 can remotely control the touchscreen of POS device 1104. POS device 1104 may display different itemson different screens that are available for purchase. Arranging theseitems in a customized way allows a primary user using POS device toquickly process items that a secondary user would like to purchase.

FIG. 25 shows a screen shot 2500 of a screen presented to a primary userat workstation 1102. As shown in FIG. 25 , the user is shown items 2506that are displayed on the touch screen of POS device 1104. The primaryuser is also presented with a search box 2502, an add item box 2504, amenu including accessible screen buttons 2508, and a new screen button2510. Using the controls presented in screen shot 2500, a merchant cancontrol what items are displayed on POS device 1104 on which screen. Inan embodiment, accessible screen buttons 2508 can each relate to aspecific category of items for sale (e.g., produce, bakery, dairy,etc.). For example, a primary user can search using search box 2502 andadd an item using add item box 2504. The primary user can further changescreens to a different screen shown on POS device 1104 using screenbuttons 2508. The primary user can add a new screen to be presentedusing POS device 1104 using the new screen button 2510. Once a newscreen is created, the primary user can use search box 2502 and add itembox 2504 to add items to the new screen.

In step 2406, it is determined whether a status-based notification hasbeen received from a POS device. For example, in FIG. 11 , web server1152 can determine whether a status-based notification has been receivedfrom POS device 1104. The status-based notification events can relateto, for example, whether components of POS device are functional orfailing, whether a primary user has logged into the POS device, whetherthe POS device is overheating, whether the POS device is running low onimportant supplies (e.g., receipt paper), etc.

For example, POS device 1104 can be configured to transmit notificationsto web server 1152 upon the occurrence of predetermined events. If atouch screen of POS device 1104 malfunctions, POS device 1104 can beconfigured to transmit an appropriate notification to web server 1152.Other examples of events that may trigger a notification from POS device1104 to web server 1152 can include, e.g., the temperature of POS device1104 exceeding a threshold, a primary user logging on or logging off aPOS device 1104, or a component of POS device 1104.

In an embodiment, POS device 1104 can be configured to automaticallytransmit notification by detecting one or more of the above events. Inalternate embodiments, a primary user can provide input, e.g., throughthe pushing of appropriate buttons, to POS device 1104 that one or moreof the above events has occurred.

If it is determined in step 2406 that a status-based notification hasbeen received from a POS device, in step 2408, a push notificationregarding the status-based notification is sent to one or more primaryusers, to thereby notify such primary users. In the embodiment of FIG.11 , web server 1152 can send a push notification regarding thestatus-based notification received from the POS device to mobile device1106 for display for the primary user.

In step 2410, the POS device can be remotely controlled by the primaryuser based on the status-based notification. For example, the pushnotification displayed to the primary user on mobile device 1106 caninclude an option to deactivate the POS device, e.g., if an aspect ofthe POS device is malfunctioning. In response, web server 1152 can senda message instructing POS device 1104 to power down. As another example,the primary user can be provided with the option to disable specificcomponents of the POS device based on the notification. For example, thepush notification sent in step 2408 can provide the option of disablinga specific component POS device, thereby allowing the POS device toremain operational.

In an embodiment, step 2410 is optional. For example, the primary userhaving received the push notification in step 2408 can elect to take noaction. In another embodiment, cloud-based devices can be configured toautomatically take certain actions based on the occurrence of an event(e.g., without instruction from a primary user). In such an embodiment,web server 1152 can be configured to transmit a push notification to aprimary user if a critical supply for POS device 1104 is running low.Important supplies for POS device 1104 can include ink and paper used toprint receipts. After transmitting the notification, web server 1152 canautomatically, e.g., without instruction from the primary user, send arequest for additional quantities of the supply from an appropriatesupplier. In particular, web server 1152 can be configured toautomatically, e.g., without input from a primary user, send a requestto an appropriate supplier for receipt paper or ink if either supply isrunning low. The notifications can also be used for manger off siteapproval using the mobile phone device to approve opening the cashregister or approving a transaction over a certain dollar amount asexample.

FIG. 28 shows a flowchart of a method 2800 for managing inventoryprovided by POS devices, according to an embodiment. Method 2800 isdescribed with reference to the embodiments shown in FIGS. 1 and 11 ,but is not limited to those embodiments.

In step 2802, it is determined whether a request to order additionalinventory has been received. Requests for additional inventory can bereceived from a primary user in a number of different ways. For example,it can be determined whether a request to update inventory was receivedat web server 1152 from a primary user using workstation 1102. In thisexample, a primary user can log in to the merchant's account on webserver 1152 and request to update inventory. Additionally oralternatively, a merchant can send a request to update inventory frommobile device 1106.

If in step 2802 a request to update inventory was received, in step2804, item information and quantity for the update are obtained. Forexample, in FIG. 11 , a primary user can use workstation 1102 to provideinformation regarding items to be added and the quantity of those itemsto be added to inventory. For example, a primary user can provide apicture of an item to be added to inventory and the quantity of items tobe provided in the inventory. The merchant can also provide a barcode,e.g., as a numerical representation, through workstation 1102.Additionally or alternatively, a primary user can use mobile device 1106to take a picture of an item to be added to inventory and to scan thebarcode of that item. The primary user can further use mobile device1106 to input the number of items to be added in inventory for thatitem.

In step 2806, POS device(s) are synced with the updated inventory. Forexample, in FIG. 11 , once inventory has been updated, web server 1152can transmit the new inventory including items and the number of itemsincluded in inventory to POS device 1104. In an alternate embodiment, aprimary user of POS device 1104 can pull the updated inventory from webserver 1152 by requesting the updated inventory.

In step 2808, it is determined whether inventory for an item is below athreshold. For example, in FIG. 11 , web server 1152 may maintainthreshold values for inventory associated with certain items in database1154. A primary user may use workstation 1102 to set threshold valuesfor items of interest with web server 1152. Web server 1152 can thenmonitor inventory stored in database 1154 in real time to determinewhether the inventory for an item has fallen below a user-specifiedthreshold.

If in step 2808 it is determined that inventory has fallen below thethreshold, in step 2810, a push notification regarding low inventory issent. For example, in FIG. 11 , web server 1152 can send a pushnotification to mobile device 1106, which is displayed to a primaryuser. The push notification informs the primary user that inventory forone more items has fallen below the predetermined threshold. In anembodiment, web server 1152 can send the push notification to one,multiple, or all mobile devices associated with primary users of amerchant.

In step 2812, additional inventory is requested. For example, in FIG. 11, when mobile device 1106 displays a push notification, the primary usercan be given the option to request additional inventory. If the primaryuser exercises this option, e.g., by selecting the appropriate box,mobile device 1106 can send a request for additional inventory to webserver 1152. Web server 1152 receives this request for additionalinventory, and formulates a request to be sent to the relevant supplier.In an embodiment, web server 1152 can generate an email that istransmitted to the supplier requesting additional inventory. Inalternate embodiments, web server 1152 can use other ways of requestinginventory from a supplier (e.g., automatically filling outInternet-accessible request forms provided by the supplier).

Advertising embodiments will now be discussed. In an embodiment, POSdevices, such as POS device 101, 1104, can be used to displayadvertisements. For example, if a POS device is idle for at least someperiod of time (called a “threshold”), the touch screen can be used todisplay advertisements. Idleness of the POS device can be determinedbased on the last time a user (e.g., a primary user or a secondary user)interacted with the touch screen of the POS device. To enhance theeffect of the advertising, the advertisements can be selected so as tobe relevant to items that can be bought at a particular store. Forexample, if the POS device is included in a store that sells aparticular item, the advertisements displayed on the POS device can bechosen so that they advertise that particular item, similar items,complementary items, items that have historically been sold with thatparticular item, etc.

FIG. 26 shows an advertising environment 2600, according to anembodiment. Advertising environment 2600 includes advertisers 2602, adserver 2650, advertiser database 2608, ad database 2610, merchantdatabase 2612, and merchants 2614. In an embodiment, ad server 2650 canbe implemented as web server 1152 shown in FIG. 11 . In anotherembodiment, advertiser database 2608, ad database 2610, and/or merchantdatabase 2612 can be implemented as database 1154 as shown in FIG. 11 .In an alternate embodiment, ad server 2650, advertiser database 2608, addatabase 2610, and/or merchant database 2612 can be implemented asdifferent elements within cloud 1150. The operation of advertisingenvironment 2600 will be described in greater detail with respect to theflowchart shown in FIG. 27 .

FIG. 27 shows a flowchart of a method 2700 for managing advertisementdisplay, according to an embodiment. Method 2700 is described withreference to the embodiment shown in FIGS. 11 and 26 , but is notlimited to those embodiments.

In step 2702, advertisements are received from advertisers. For example,in FIG. 26 , ad server 2650 can receive one or more advertisements fromone or more advertisers 2602. Advertisers 2602 can be manufacturersand/or suppliers of different items that can be sold by merchants.

In step 2704, a store of a merchant is selected to display the receivedadvertisements. For example, in FIG. 26 , relevance engine 2652 candetermine which merchants 2614 has a store that should display receivedadvertisements. For example, relevance engine 2652 can consultadvertiser database 2608 to obtain information about the types of goodsand services advertised in the received advertisements, and comparethese characteristics to characteristics of merchant stores stored inmerchant database 2612. Based on this comparison, relevance engine 2652of ad server 2650 can determine which merchants 2614 has a store wheredisplaying the received advertisements would be relevant.

A number of different algorithms can be used for determining therelevance between a store and an advertisement. For example, when newstores are created, the primary user can be queried for keywordsassociated with items sold at the store. Similarly, when advertisementsare provided by advertisers, they can also provide keywords related tothe content of the advertisements. Relevance engine 2652 can comparethese keywords and determine that an advertisement is relevant to astore if one or more of the keywords match. The set of keywords used canbe augmented by determining complementary items to what is sold in astore. For example, relevance engine 2652 can use the keywords providedby the primary user to find keywords related to complementary items. Forexample, if one of the keywords provided by the primary user is aparticular food or beverage, relevance engine 2652 can map this food orbeverage to other foods or beverages that are often consumed along withthe particular food or beverage. Other algorithms for determiningrelevance can also be used.

In step 2704, one or more merchants may be selected, and one or morestores of each selected merchant may be selected.

In step 2706, the received advertisements are transmitted to one or morePOS devices in the selected store(s). For example, in FIG. 11 , webserver 1152 can transmit the advertisement to a POS device 1104.

3. SECURITY FEATURES

FIG. 31 illustrates a point of sale (POS) device 3100, for example thePOS device 101 illustrated in FIG. 1 , in which embodiments describedherein can be implemented. In an embodiment, the POS device 3100includes a processor with a “hardened” operating system (OS) 3104 thatpartial or full security of the operating system against alterationcoupled to a communication module 3106 and a peripheral device port3108. The peripheral device port 3108 can be the data interface 211described above with respect to FIGS. 2B and 3 . For ease of discussion,only one peripheral device port 3108 is illustrated in FIG. 31 , thoughembodiments can implement multiple peripheral device ports 3108.

As described above, embodiments of the POS device 3100 can include novelhardware and software, for example the flip screen functionalitydescribed above with respect to, for example, FIGS. 7-9 . In addition, amanufacturer of the POS device 3100 can take additional steps to renderthe POS device 3100 secure, as described in further detail below. Asreferred to herein, a “manufacturer” can be an entity that manufactures,distributes, and/or sells the POS device 3100 to an end-user. Themanufacturer can include a third-party entity such as, for example, aweb page interface that provides a means for ordering the POS device3100. The end-user can be, for example and without limitation, amerchant that uses the POS device 3100 during the course of commercialtransactions with one or more customers. The merchant can be, forexample, the primary user described above with respect to FIGS. 2A and2B.

In an embodiment, the POS device 3100 includes the processor with the“hardened” OS 3104. The term “hardened” or “hardening” refers to aprocess of securing a computing system (e.g., POS system 100 of FIG. 1 )by reducing the capabilities or functions that the computing system canfulfill. Among other things, the hardening process reduces the computingsystem's vulnerability to security risks.

Prior to the hardening process, a manufacturer of the POS device 3100loads an Operating System (OS) onto the POS device 3100. Themanufacturer then loads other software (e.g., anti-virus and securityprograms) and POS applications (e.g., a register application) onto thePOS device 3100. The manufacturer can also load device drivers enablingthe POS device 3100 to access other elements of the POS device 3100,such as drivers for the communication module 3106 and the peripheraldevice port 3108. Once the manufacturer has loaded POS device 3100 withthe appropriate software and device drivers, the manufacturer can hardenPOS device 3100, according to an embodiment.

In an embodiment, the POS device 3100 includes a hardened OS. Hardeningthe system can include modifying a pre-loaded OS so that additionaldevice drivers are unable to be installed in traditional ways, such asby plugging a device into the peripheral device port 3108, according toan embodiment. The pre-loaded OS and associated software can be hardenedso that additional programs cannot be downloaded onto the POS device3100, and that communications to and from the POS device 3100 arelimited. For example, the pre-loaded OS can be modified such that itonly accepts information in response to a request it has made. It canalso be hardened such that it only accepts information from specificaddresses (e.g., the back-end server 109 illustrated in FIG. 1 ) or fromsources with specific identifying information (e.g., a productidentification (ID) or a vendor ID).

In an embodiment, a security circuit (not illustrated) can be provided.The additional security circuit can be configured to store acertificate, serial number, hardware version identifiers, encryptionkey, or combination thereof. In an embodiment the security chip can beincluded within the processor with the “hardened” OS 3104. In anotherembodiment, the security chip can be separate from the processor 3104.In an embodiment, the security circuit can be a Trusted Platform Module(TMP) chip. In an embodiment, the security circuit can be configured touse EEPROM to store the certificate, serial number, hardware versionidentifiers, encryption key, or combination thereof. In an embodiment,the security circuit can be configured by a manufacturer of the POSdevice 3100 to store device specific information, for example the serialnumber and hardware version number specific to the POS device 3100. Inan embodiment, the security circuit can be configured to verify thatinformation or software was received from a trusted source, for examplethe manufacturer of the POS device 3100.

In an embodiment, the OS may be hardened such that it only allowsapproved applications, such as register applications, to run on the POSdevice 3100. Register applications can include, for example,applications related to commercial transactions conducted by merchantswith customers for the sale of goods. In an embodiment, all means forexiting the register applications are disabled.

For example, if Google's Android OS is loaded onto the POS device 3100,the OS can be hardened by modifying the OS to operate in a “kiosk” modeoperation with the register applications as “launcher applications.”Here, the POS device 3100 is locked into the kiosk mode of operation andis only able to run or launch the register applications (e.g., launcherapplications). The register applications, which are executed when thePOS device 3100 is powered on, have been configured such that all meansof exiting the applications have been disabled, according to anembodiment. In an embodiment, hardening may include removing backgroundprocesses, daemons, and drivers from the kernel. In an embodiment,access requests to local data, for example local databases, can also bedisabled. In an embodiment, hardening can include removing some or allof an application's ability to access or modify information or statewithin the system. In an embodiment, input from peripheral devices canonly affect the register application, and does not affect otherapplications on the POS device 3100. A person skilled in the art wouldunderstand that the above examples and embodiments are only some of theways of hardening a system, and that other methods are possible.

In an embodiment, the security circuit can be used to encrypt an imageof the hardened OS and certified applications. In an embodiment, thesecurity circuit can be configured to use a stored certificate tovalidate an OS image and then encrypt the image using a storedencryption key. In an embodiment, the POS device 3100 can use thesecurity circuit to verify that an application or update (described inmore detail below) is from a trust source. In an embodiment, thesecurity circuit can be configured to verify the authenticity of the OS,an application, or an update. In an embodiment, a cloud computingresource can be configured to use the security circuit to verifyapplications or information prior to allowing access to the cloudcomputing resources. In an embodiment, the security circuit can be usedto verify that applications, for example the register application on thePOS device 3100, have not been tampered with.

In addition, other software loaded onto the POS device 3100 can behardened, according to an embodiment. In an embodiment, applications,for example the register application, can be hardened to restrict theability to share or copy the data for the application. In an embodiment,the register application can be modified to disable a merchant's abilityto exit the application. For example, POS device 3100 can be loaded witha hardened register application. This application may automaticallystart up when the POS device 3100 is turned on (e.g., launcherapplication), and may be modified so that the merchant is not able toexit from the application. In an embodiment, the register applicationcan also be modified to prevent acceptance and loading of software orsoftware updates. For example, the POS device 3100 can be designed toaccept updates from specific verified sources. In another example, thePOS device 3100 can be configured to require a certificate prior toinstalling software updates. Software updates may instead be verified bya trusted source (e.g., the back-end server 109 of FIG. 1 ) and sentwith the next verified pushed update from the trusted source to the POSdevice 3100. In an embodiment, specific software modes of operation, forexample Android Debug Mode (ADB), fastboot, and Uboot, can also bedisabled.

In referring to FIG. 31 , the communication module 3106 can beconfigured to communicate via a wired connection, a wireless connection,or both. In an embodiment, the communication module 3106 can incorporateportions or all of the functionalities associated with wirelesstransceiver 433 of FIG. 4 . Independent of the type of communication,the communication module 3106 can be configured to verify thatcommunications are secure. For example, if the communication module 3106handles wireless communications, it may only allow securedcommunications. In an embodiment, the communication module 3106 permitsWi-Fi access, but may require the connection to use secure protocolssuch as the Wi-Fi Protected Access II (WPA2) security protocol. Inanother embodiment, the communication module 3106 may only usecommunication paths that have been Payment Card Industry (PCI)authorized. In an embodiment, the communication module 3106 can beconfigured to only accept incoming information in response to anoutgoing request. For example, the communication module 3106 can beconfigured to only allow outgoing connections to be established and onlyaccept information initiated by the outgoing connections. Otherwise, allincoming information is blocked by the communication module 3106, thuspreventing the POS device 3100 from processing the incoming information.This communication scheme of accepting incoming information into the POSdevice 3100 in response to an established outgoing connection isdescribed in further detail below.

In an embodiment, for commercial transactions, the POS device 3100 doesnot store payment information (e.g., provided by a customer to amerchant via the POS device 3100) associated with the transactions. Inan embodiment, the communication module 3106 is configured tocommunicate directly with one or more financial institutions (e.g., thetransaction server 111 in FIG. 1 ). For example, in referring to FIG. 1, the POS device 3100 can communicate with a financial institution atthe transaction server 111 via the connection 160. Here, the POS device3100 can transmit the payment information to the transaction server 111and, upon processing of the payment information by the transactionserver 111, receive an indication of approval or denial of the payment.The POS device 3100 is thus not required to store the paymentinformation beyond transmission of the information to the financialinstitution at the transaction server 111. The POS device 3100 can thusbe configured to verify that a customer's payment is valid and that thecustomer has authorization to make a purchase without requiring the POSdevice 3100 or the back-end server 109 in FIG. 1 to store paymentinformation. This provides additional security against unauthorizedaccess to information on the POS device 3100 or the back-end server 109.

In referring to FIG. 31 , the POS device 3100 includes the peripheraldevice port 3108. During the hardening process described above, theperipheral device port 3108 can be modified such that one or morefunctionalities of the port are disabled. For example, the peripheraldevice port 3108 can include predefined functionalities such as, forexample, providing control signals, providing bi-directional data flow,and providing power. In an embodiment, the hardening process can includeremoving the ability for control signals and data flow to be provided byperipheral device port 3108 such that, for example, additional devicedrivers cannot be installed in the POS device 3100. In an embodiment,the POS device's operating system may be configured to disable datainput from a peripheral device that would allow a merchant to exit theregister application. For example, if the POS device 3100 is configuredto accept a keyboard peripheral device via the peripheral device port3108, the operating system may disable an exit function, for example the“ctrl-alt-del” exit function, for keyboard peripheral devices.

In an embodiment, the peripheral device port 3108 is a Universal SerialBus (USB) port, where data functions, such as booting from a USB ordownloading files, can be disabled but the power functions remainenabled. This would allow a user of POS device 3100 (e.g., merchant) tocharge a device (e.g., a mobile phone) using the peripheral device port,but would not allow the user to install malicious software or driversmerely by plugging in a device into the peripheral device port 3108. Inother embodiments, the hardening process can include only allowingadditional device drivers to be installed using specific mechanisms,such as receiving information from trusted sources such as, for example,the back-end server 109 of FIG. 1 or from validated peripheral devices(e.g., using vendor IDs, product IDs, serial numbers, operating systemIDs, hash routines, authentication/handshake routines, etc.). Forexample, the manufacturer of the POS device 3100 can provide a keyboardthat communicates with the POS device 3100 via the peripheral deviceport 3108. The keyboard can include a vendor ID indicating it isprovided by the manufacturer or a product ID indicating it is a trustedinput device, thus allowing the system to verify that the data receivedfrom the keyboard is secure. In an embodiment, peripheral storagedevices, for example USB thumb drives, can be disabled by default forimproved security.

FIG. 32 is a flowchart illustrating a process 3200 for a POS devicebeing ordered and used, according to an example embodiment. FIG. 32shows an example method for a POS device (e.g., the POS device 3100 inFIG. 31 ) being ordered, shipped, and used to conduct financialtransactions and store transactions.

At step 3202, a manufacturer of the POS device (e.g., an entity thatmanufactures, distributes, and/or sells the POS device) can receive arequest from a merchant ordering the POS device (e.g., the POS device3100). Here, the merchant can be a person, organization, or entity thatuses the POS device to conduct financial transactions such as, forexample, the sale of goods and products. A person skilled in the artwould recognize that the merchant can order the POS device through manymeans such as, for example, from a website associated with themanufacturer, through a sales representative associated with themanufacturer or distributor, from a catalog (e.g., provided by a thirdparty), by an in-person visit to the manufacturer, and from a retailstore.

At step 3204, the manufacturer provides the POS device to the merchant.This can occur at the time of sale such as, for example, if the merchantpurchases the POS device from a retail store. This can also occur afterthe sale has completed such as, for example if the merchant ordered thePOS device through a website.

At step 3206, the manufacturer receives registration information fromthe merchant. The registration information can include merchantinformation and merchant login credentials. In an embodiment, step 3206can occur after step 3202 but before, during, or after step 3204. In anembodiment, the manufacturer can provide the merchant a web address orprovide some other means for the merchant to register the POS devicewith the manufacturer. In an embodiment, the POS device can beregistered via the website when the POS device connects to a cloudcomputing resource or website. The website stores merchant accountinformation such as, for example, a username, password, inventoryinformation, employee information, and bank information. In anembodiment, the merchant's account information can be stored in a cloudcomputing resource such as, for example, the back-end server 109illustrated in FIG. 1 .

At step 3208, the manufacturer receives a login request from the POSdevice from the merchant. At this point, the merchant has purchased andthe manufacturer has sent the POS device (e.g., the POS device 3100illustrated in FIG. 31 ) and set up a merchant account. In anembodiment, the POS device can also be used without the cloud computingresource for non-credit card transactions. In an embodiment, offlinetransactions do not risk a breach of security because no credit cardinformation is stored on the POS device.

Once powered on, the POS device can wirelessly connect to an availablesecure connection and establish a secure communication with the cloudcomputing resource (e.g., the back-end server 109 of FIG. 1 ) using, forexample, a PCI (Payment Card Industry) authorized connection. In anotherembodiment, the POS device can require a secure wired connection withthe cloud computing resource before establishing a secure communication.Once the secure communication has been established with the cloudcomputing resource, the merchant can log into the POS device.

At step 3210, the POS device validates the merchant's credentials. In anembodiment, the POS device can request the cloud computing resource tovalidate the merchant by transmitting information identifying the POSdevice along with the login information provided by the merchant to thecloud computing resource. The cloud computing resource can thencompare/validate this information against the corresponding informationprovided by the merchant in step 3206.

At step 3212, if the cloud computing resource validates the merchant'scredentials, the merchant can use the POS device to conduct transactions(e.g., commercial transactions). At this point, the merchant can access,for example, user preferences, inventory information, employeeinformation, bank information associated with the merchant's account.This information can be information that the merchant entered when itinitially created the account. This information can also includeinformation added or updated at a later time. For example, a merchantmay have only provided the requisite information required to initiallycreate the account, and may have logged on the POS device at a latertime to add additional information, such as inventory and employeeinformation. In an embodiment, this information can be communicated in asecure manner. All of this information may be accessible via the POSdevice at step 3212. The merchant can also execute financial orcommercial transactions using the POS device such as, for example, usinga credit card to complete a sale for a retail customer.

As discussed above, the manufacturer can harden the POS device (e.g.,the POS device 3100 of FIG. 31 ) prior to be it being shipped to amerchant. In an embodiment, this hardening can include removing theability for the POS device to receive data from one or more peripheraldevices such as, for example a USB flash device, a CD-ROM, and akeyboard. In an embodiment, the POS device may also be configured sothat is can only receive data in response to a request it has made,i.e., it will reject all incoming data until it makes a request (e.g.,to verify a sale) and receives data from the appropriate source.

But, as will be discussed in more detail below, it may become necessaryto make modifications to the POS device over time such as, for example,when installing updated security software. Therefore, in an embodiment,the POS device can be configured to periodically request one or moreupdates that are available from a trusted source such as, for example,the back-end server 109 in FIG. 1 . In an embodiment, the POS device canissue the request when it is powered on, at periodic intervals, at aspecific time of each day, or a combination thereof.

If an update is received, the POS device can ask the merchant forpermission to install the update on the POS device, according to anembodiment. For example, it may be a busy time during the business day,and the merchant may not want the POS device to install the update atthat time. In an embodiment, the POS device can periodically renew therequest such as, for example, every hour. In an embodiment, the POSdevice can renew the requests based on the load on the POS device suchas, for example, when the processor load (of the POS device) isrelatively light or the processor is entering a sleep state.

Updates can also be classified based on a type of update, according toan embodiment. Update types can include security updates, softwarefeature updates, and bug fix updates. For example, updates addressingknown security issues can be tagged as urgent, whereas updates for agraphical user interface (GUI) of the POS device, feature updates, andnon-security bug fixes can be tagged as less urgent. Certain tags canalso impose requirements regarding installation of the update. In anembodiment, if an urgent update is not installed within a set timeperiod, for example 30 days, the POS device can automatically start theinstallation process. In another embodiment, if an urgent update is notinstalled, the POS device can disable its connection to the cloudcomputing resource (e.g., the back-end server 109 of FIG. 1 ). Inanother embodiment, the POS device will automatically start theinstallation process. A person skilled in the art would understand thatother functionalities can also be implemented.

FIG. 33 illustrates a POS system 3300 in which embodiments describedherein can be implemented. Specifically, FIG. 33 illustratescommunications that occur when one or more POS devices, for example POSdevices 3302A and 3302B, process a financial transaction, for example acredit card payment. In an embodiment, POS devices 3302A and 3302B arein communication with a cloud computing resource 3304 and a paymentgateway 3308. Cloud computing resource 3304 is also in communicationwith a storage device 3306. POS devices 3302A and 3302B operate in asimilar manner as the POS device 101 of FIG. 1 and the POS device 3100of FIG. 31 , according to an embodiment. Also, in an embodiment, thecombination of the cloud computing resource 3304 and storage device 3306operate in a similar manner as the back-end server 109 of FIG. 1 .

Initially, a POS device receives a request to process a merchant event,such as a financial transaction, via, for example, a request module. Themerchant event can be, for example, a payment for an item, a balancecheck, or a verification of the authenticity of a credit card. The POSdevice, for example the POS device 3302A or 3302B, can receiveinformation regarding the merchant event when entered by the merchant.For example, the merchant can swipe a credit card using a magneticstripe reader (MSR) or a smart card reader also known as a EMV reader,described above, and enter the cost of an item for sale.

At this point, the POS device 3302A or 3302B communicates with thepayment gateway 3308, for example transaction server 111 illustrated inFIG. 1 , to process the merchant transaction. As discussed above, thePOS device 3302A or 3302B can establish a secure connection such as, forexample, a PCI secure connection, with the payment gateway 3308. In anembodiment, to improve security, POS device 3302A or 3302B can beconfigured to establish only a PCI secure connection. The POS device3302A or 3302B can establish a wired connection, a wireless connection,or both with the cloud computing resource 3304, as described above.

The payment gateway 3308 processes the merchant transaction and respondsto the POS device 3302A or 3302B with an indication of whether thetransaction was approved or denied. In an embodiment, the response frompayment gateway 3308 includes an authorization code. In anotherembodiment, the response excludes any Primary Account Number (PAN) dataor customer privacy information (e.g., expiration date and security codeof credit account). In an embodiment, the response includes only anindication of whether the transaction was approved or denied, with noadditional information, such as an authorization code.

In an embodiment, the POS devices 3302A and 3302B retain some or all ofa customer's financial information such as, for example, the customer'scredit card number. In an embodiment, the POS devices 3302A and 3302Band cloud computing resource 3304 do not store customer privatefinancial information, for example credit card numbers, debit cardnumbers, bank account information, etc. as an additional securitymeasure.

Once the payment gateway 3308 responds to the merchant transaction,indicating the transaction has been approved or denied, the POS devices3302A and 3302B create a data record of the merchant event, according toan embodiment. In an embodiment, if a data record already exists, thePOS devices 3302A and 3302B append the merchant event onto the datarecord. In an embodiment, a merchant event is recorded whether or notthe transaction is approved by the payment gateway 3308. The data recordcan contain information regarding the merchant event such as, forexample, transaction type, amount, date and time, customeridentification, inventory affected, and employee associated with thetransaction. The POS devices 3302A and 3302B can also be configured tomaintain “service data” regarding additional information such as, forexample, when employees log into or out of the POS device, updatedinventory information, and updated employee information.

As described above, the POS device can receive software updates (e.g.,security updates, software feature updates, and bug fix updates). ThePOS devices 3302A and 3302B can be configured to record eventsassociated with the software updates such as, for example, a date andtime of the software update, the type of software update, whether thesoftware update was successfully installed, and other relatedinformation. The record of the software update events is also referredto herein as “system software event data.”

In an embodiment, the POS devices 3302A and 3302B communicate their datato the cloud computing resources 3304. In an embodiment, thecommunicated data from the POS devices 3302A and 3302B to the cloudcomputing resource 3304 can include one or more of the merchant events,the service data, the system software event data, and other datadescribed above. This communicated data is also referred to herein asthe “POS device activity data.”

In an embodiment, the cloud computing resource 3304 is provided by amanufacturer of the POS devices 3302A and 3302B. In an embodiment, whenthe POS devices 3302A and 3302B are hardened (as described above), thenetwork address of the cloud computing resource 3304 is hard coded intothe software that is loaded onto the POS devices 3302A and 3302B. In anembodiment, the POS devices 3302A and 3302B can communicate the POSdevice activity data at regular or periodic intervals such as, forexample, every hour or every day. In another embodiment, POS devices3302A and 3302B can communicate the POS device activity data to thecloud computing resource 3304 when they receive a software update (asdescribed above). In an embodiment, the POS devices 3302A and 3302B cancommunicate the POS device activity data each time a merchant eventhappens.

At the cloud computing resource 3304, security services store the POSdevice activity data it receives from the POS devices 3302A and 3302B ina cloud storage area (e.g., database 3306). This can be anenterprise-level storage device that provides both sufficient storagecapacity and data access for use by multiple POS devices and multiplemerchants.

FIG. 34 illustrates a POS system 3400 in which embodiments describedherein can be implemented. Specifically, FIG. 34 illustrates a cloudcomputing resource 3404 configured to store POS device activity datareceived from multiple POS devices 3410A and 3410B and accessible by asecurity entity 3402. In addition, FIG. 34 illustrates mobile devices3412A and 3412B, such as the mobile device 105 illustrated in FIG. 1 ,configured to access the POS device activity data stored on the cloudcomputing resource 3404. In an embodiment, the cloud computing resource3404, for example the back-end server 109 illustrated in FIG. 1 or thecloud computing resource 3304 illustrated in FIG. 33 , is incommunication with the security entity 3402, POS devices 3410A and3410B, and mobile devices 3412A and 3412B. The security entity 3402 isconfigured to access POS device activity data stored on the cloudcomputing resource 3404, analyze the data, and make modifications basedon its analysis, as described in more detail below.

In an embodiment, the cloud computing resource 3404 can include one ormore databases to store information. These databases can be a networkedenterprise storage device such as, for example, the back-end server 109in FIG. 1 . The cloud computing resource 3404 can be configured to storePOS device activity data received from one or more of the POS devices3410A and 3410B, for example POS device activity data 3408A and 3408B.

The security entity 3402 is in communication with the cloud computingresource 3404. The security entity 3402 can be associated with themanufacturer of the POS devices, associated with an entity thatmaintains the cloud computing resource, or associated with both. Thesecurity entity 3402 has access to information stored at the cloudcomputing resource such as, for example, information from POS devicesthat send POS device activity data to the cloud computing resource 3404.In an embodiment, the security entity 3402 is configured to collate thePOS device activity data stored in the cloud computing resource 3404 todetermine one or more trends.

In an embodiment, the security entity 3402 can be configured to identifysecurity threats to one or more POS devices or to the cloud computingresource 3404. For example, when analyzing the POS device activity data,the security entity 3402 can identify that there are three failedattempts to log into a POS device (e.g., POS device 3410A). Based onthis information, the security entity 3402 may determine that this is anattempt to hack the username and/or password of the POS device and alertthe merchant of the potential security issue.

In another example, the security entity 3402 can determine that the samecustomer has attempted a failed transaction at multiple POS devices. Byanalyzing the POS device activity data collected from multiple POSdevices, the security entity 3402 may determine the signature of ahacker and implement security updates to protect against this identifiedthreat.

FIG. 35 is a flowchart illustrating a process 3500 for analyzing datauploaded to a cloud computing resource and implementing modificationsbased on identified trends according to an embodiment. The analyzed datacan be, for example, POS device activity data.

At step 3502, POS device activity data is recorded. As described above,each of one or more POS devices can record data regarding differenttypes of activities that occur at the register—e.g., POS device activitydata. For example, business events can contain merchant events (e.g.,financial transactions such as, for example, sales events), officemanagement transactions (e.g., employees clocking in and out orinventory being stocked or sold), POS events (e.g., successful andfailed login attempts), and other types of data. This POS deviceactivity data, as described above, is transmitted from the POS device tothe cloud computing resource, for example the back-end server 109illustrated in FIG. 1 , via a secure communication channel.

In an embodiment, a security entity, such as the security entity 3402described in relation to FIG. 34 , can collate the POS device activitydata and analyze the data at step 3504. This can occur on a periodicbasis such as, for example, once a week, once a month, when the POSdevice activity data reaches a certain storage size in one or more cloudcomputing resources, or based on any number of other criteria as wouldbe known to a person skilled in the art. In analyzing this data, thesecurity entity can identify one or more trends in the data. Forexample, the security entity can identify trends related to thetransactions at a specific POS device or trends related to transactionsat multiple POS devices. In an embodiment, the multiple POS devices canbe associated with different merchants, and this data can be used toidentify one or more trends affecting multiple merchants. The securityentity can also be configured to identify trends that indicate attackson one or more cloud computing resources itself.

At step 3506, the security entity determines one or more modificationsto be instituted to address the trends. An example modification would beto modify the resource allocation for data storage on the cloudcomputing resource based on different usage models by the POS devices,e.g., increasing storage resources for an ice cream store during summermonths and decreasing storage resources during winter months. Anotherexample would be updating the security software on a POS device, ifmalicious activity has been detected. This update could then be sent thenext time the POS device requests updates from the cloud computingresource. In another example, a security update may be identified forPOS devices connected to one or more cloud computing resources, andpushed to each of them when they request updates from the cloudcomputing resources. Also, modifications to the security of the cloudcomputing resource may be identified.

For example, by analyzing the data uploaded from multiple POS devices,the cloud computing resource may identify a series of attempts to accessthe cloud computing resources that have a similar signature butoriginate from different POS devices (e.g., someone may be attempting tolog into idle POS devices at different stores). Having access to POSdevice activity data from multiple POS devices, the security entity canidentify such attacks and determine if there is a modification that canbe implemented to protect against the perceived threat.

4. EXAMPLE COMPUTER SYSTEM

Various embodiments can be implemented, for example, using one or morewell-known computer systems, such as computer system 3600 shown in FIG.36 . Computer system 3600 can be any well-known computer capable ofperforming the functions described herein, such as computers availablefrom International Business Machines, Apple, Sun, HP, Dell, Sony,Toshiba, etc. For example, the POS devices 101, 3100, 3302A-B, and3410A-B, illustrated in FIGS. 1, 31, 33, and 34 respectively, and themulti-mode point-of-sale device illustrated in FIG. 4 , or portionsthereof, can be implemented using computer system 3600. In addition,network devices such as network 107 illustrated in FIG. 1 , CloudComputing Resource 3304 illustrated in FIG. 33 , and Cloud ComputingResource 3404 illustrated in FIG. 34 , or portions thereof can beimplemented using computer system 3600. Other computing devices, such asTransaction Server 111 illustrated in FIG. 1 , Server 109 illustrated inFIG. 1 , Server 1001 illustrated in FIG. 10 , Database 3306 illustratedin FIG. 33 , Payment Gateway 3308 illustrated in FIG. 33 , mobiledevices 3412A-B illustrated in FIG. 34 , Security Entity 3402illustrated in FIG. 34 , or portions thereof can also be implementedusing computer system 3600.

Computer system 3600 includes one or more processors (also calledcentral processing units, or CPUs), such as a processor 3604. Processor3604 is connected to a communication infrastructure or bus 3606.

One or more processors 3604 may each be a graphics processing unit(GPU). In an embodiment, a GPU is a processor that is a specializedelectronic circuit designed to rapidly process mathematically intensiveapplications on electronic devices. The GPU may have a highly parallelstructure that is efficient for parallel processing of large blocks ofdata, such as mathematically intensive data common to computer graphicsapplications, images and videos.

Computer system 3600 also includes user input/output device(s) 3603,such as monitors, keyboards, pointing devices, etc., which communicatewith communication infrastructure 3606 through user input/outputinterface(s) 3602.

Computer system 3600 also includes a main or primary memory 3608, suchas random access memory (RAM). Main memory 3608 may include one or morelevels of cache. Main memory 3608 has stored therein control logic(i.e., computer software) and/or data.

Computer system 3600 may also include one or more secondary storagedevices or memory 3610. Secondary memory 3610 may include, for example,a hard disk drive 3612 and/or a removable storage device or drive 3614.Removable storage drive 3614 may be a floppy disk drive, a magnetic tapedrive, a compact disk drive, an optical storage device, tape backupdevice, and/or any other storage device/drive.

Removable storage drive 3614 may interact with a removable storage unit3618. Removable storage unit 3618 includes a computer usable or readablestorage device having stored thereon computer software (control logic)and/or data. Removable storage unit 3618 may be a floppy disk, magnetictape, compact disk, DVD, optical storage disk, and/any other computerdata storage device. Removable storage drive 3614 reads from and/orwrites to removable storage unit 3618 in a well-known manner.

According to an exemplary embodiment, secondary memory 3610 may includeother means, instrumentalities or other approaches for allowing computerprograms and/or other instructions and/or data to be accessed bycomputer system 3600. Such means, instrumentalities or other approachesmay include, for example, a removable storage unit 3622 and an interface3620. Examples of the removable storage unit 3622 and the interface 3620may include a program cartridge and cartridge interface (such as thatfound in video game devices), a removable memory chip (such as an EPROMor PROM) and associated socket, a memory stick and USB port, a memorycard and associated memory card slot, and/or any other removable storageunit and associated interface.

In some embodiments, computer system 3600 can be configured such that itdoes not include one or more secondary storage devices or memory 3610.

Computer system 3600 may further include a communication or networkinterface 3624. Communication interface 3624 enables computer system3600 to communicate and interact with any combination of remote devices,remote networks, remote entities, etc. (individually and collectivelyreferenced by reference number 3628). For example, communicationinterface 3624 may allow computer system 3600 to communicate with remotedevices 3628 over communications path 3626, which may be wired and/orwireless, and which may include any combination of LANs, WANs, theInternet, etc. Control logic and/or data may be transmitted to and fromcomputer system 3600 via communication path 3626.

In an embodiment, a tangible apparatus or article of manufacturecomprising a tangible computer useable or readable medium having controllogic (software) stored thereon is also referred to herein as a computerprogram product or program storage device. This can include, but is notlimited to, computer system 3600, main memory 3608, secondary memory3610, and removable storage units 3618 and 3622, as well as tangiblearticles of manufacture embodying any combination of the foregoing. Suchcontrol logic, when executed by one or more data processing devices(such as computer system 3600), causes such data processing devices tooperate as described herein.

Based on the teachings contained in this disclosure, it will be apparentto persons skilled in the relevant art(s) how to make and use theinvention using data processing devices, computer systems and/orcomputer architectures other than that shown in FIG. 36 . In particular,embodiments may operate with software, hardware, and/or operating systemimplementations other than those described herein.

5. CONCLUSION

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections (if any), is intended to be used tointerpret the claims. The Summary and Abstract sections (if any) may setforth one or more but not all exemplary embodiments of the invention ascontemplated by the inventor(s), and thus, are not intended to limit theinvention or the appended claims in any way.

While the invention has been described herein with reference toexemplary embodiments for exemplary fields and applications, it shouldbe understood that the invention is not limited thereto. Otherembodiments and modifications thereto are possible, and are within thescope and spirit of the invention. For example, and without limiting thegenerality of this paragraph, embodiments are not limited to thesoftware, hardware, firmware, and/or entities illustrated in the figuresand/or described herein. Further, embodiments (whether or not explicitlydescribed herein) have significant utility to fields and applicationsbeyond the examples described herein.

Embodiments have been described herein with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined as long as thespecified functions and relationships (or equivalents thereof) areappropriately performed. Also, alternative embodiments may performfunctional blocks, steps, operations, methods, etc. using orderingsdifferent than those described herein.

References herein to “one embodiment,” “an embodiment,” “an exampleembodiment,” or similar phrases, indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it would be within the knowledge of persons skilled in therelevant art(s) to incorporate such feature, structure, orcharacteristic into other embodiments whether or not explicitlymentioned or described herein.

The breadth and scope of the invention should not be limited by any ofthe above-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

What is claimed is:
 1. A method for remotely managing a POS devicecomprising: receiving, at a web server, a request to manage the POSdevice, wherein the request is received from a user device, wherein therequest includes at least one of a first request to remotely control adisplay of the POS device and a second request to perform an actionbased on a notification received from the POS device, and wherein theuser device is remote from the POS device; responsive to the requestincluding the first request: granting access of the display of the POSdevice to the user device; and causing a graphical user interface to bedisplayed at the user device, wherein the graphical user interfacecomprises a menu for controlling the display of the POS device;responsive to the request including the second request: transmitting apush notification to the user device, wherein the push notificationincludes a second menu including a command for controlling an operationof the POS device; receiving the command from the user device; andcausing the operation to be performed at the POS device responsive toreceiving the command.
 2. The method of claim 1, wherein thenotification comprises indication of at least one event at the POSdevice, wherein the at least one event comprises a component of the POSdevice is failing, a primary user has logged into the POS device, thePOS device is malfunctioning, or the POS device has low inventory. 3.The method of claim 1, wherein the graphical user interface comprisesinterface controls for controlling items that are displayed by the POSdevice.
 4. The method of claim 1, wherein the request is received afterlogging in, by a primary user, to an account for the merchant of theprimary user maintained by the web server.
 5. The method of claim 1,wherein the notification indicates an inventory status associated withthe POS device and the action comprises the web server transmitting anorder for additional inventory based on the inventory status.
 6. Themethod of claim 1, wherein the command for controlling an operation ofthe POS device includes deactivating the POS device.
 7. The method ofclaim 1, wherein the command for controlling an operation of the POSdevice includes disabling a component of the POS device.
 8. A system forremotely managing a POS device, the system comprising: a user device;and a web server configured to: receive a request to manage the POSdevice, wherein the request is received from the user device, whereinthe request includes at least one of a first request to remotely controla display of the POS device and a second request to perform an actionbased on a notification received from the POS device, and wherein theuser device is remote from the POS device; responsive to the requestincluding the first request: grant access of the display of the POSdevice to the user device; and cause a graphical user interface to bedisplayed at the user device, wherein the graphical user interfacecomprises a menu for controlling the display of the POS device;responsive to the request including the second request: transmit a pushnotification to the user device, wherein the push notification includesa second menu including a command for controlling an operation of thePOS device; receive the command from the user device; and cause theoperation to be performed at the POS device responsive to receiving thecommand.
 9. The system of claim 8, wherein the notification comprisesindication of at least one event at the POS device, wherein the at leastone event comprises a component of the POS device is failing, a primaryuser has logged into the POS device, the POS device is malfunctioning,or the POS device has low inventory.
 10. The system of claim 8, whereinthe graphical user interface comprises interface controls forcontrolling items that are displayed by the POS device.
 11. The systemof claim 8, wherein the request is received after a primary user loggedin to an account for the merchant of the primary user maintained by theweb server.
 12. The system of claim 8, wherein the notificationindicates an inventory status associated with the POS device and theaction comprises the web server transmitting an order for additionalinventory based on the inventory status.
 13. The system of claim 8,wherein the command for controlling an operation of the POS deviceincludes deactivating the POS device.
 14. The system of claim 8, whereinthe command for controlling an operation of the POS device includesdisabling a component of the POS device.
 15. A web server for remotelymanaging a POS device, the web server configured to: receive a requestto manage the POS device, wherein the request is received from the userdevice, wherein the request includes at least one of a first request toremotely control a display of the POS device and a second request toperform an action based on a notification received from the POS device,and wherein the user device is remote from the POS device; responsive tothe request including the first request: grant access of the display ofthe POS device to the user device; and cause a graphical user interfaceto be displayed at the user device, wherein the graphical user interfacecomprises a menu for controlling the display of the POS device;responsive to the request including the second request: transmit a pushnotification to the user device, wherein the push notification includesa second menu including a command for controlling an operation of thePOS device; receive the command from the user device; and cause theoperation to be performed at the POS device responsive to receiving thecommand.
 16. The web server of claim 15, wherein the POS device iscoupled to cloud-based services over a network.
 17. The web server ofclaim 15, wherein the graphical user interface comprises interfacecontrols for controlling items that are displayed by the POS device. 18.The web server of claim 15, wherein the notification indicates aninventory status associated with the POS device and the action comprisesthe web server transmitting an order for additional inventory based onthe inventory status.
 19. The web server of claim 15, wherein thecommand for controlling an operation of the POS device includesdeactivating the POS device.
 20. The web server of claim 15, wherein thecommand for controlling an operation of the POS device includesdisabling a component of the POS device.